使用 Java Print Service API 进行打印

  1. import javax.print.*;
  2. import javax.print.attribute.*;
  3. import java.io.*;
  4. public class Printing {
  5.     public static void main(String args[]) throws Exception {
  6.         String filename = "E:/JAVA/java实现打印/test.ps";
  7.         //PrintRequestAttributeSet实例。
  8.         //这用来弹出显示的对话框,并在对话框消失之前返回用户所作的任何更改。
  9.         PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
  10.         DocFlavor flavor = DocFlavor.INPUT_STREAM.POSTSCRIPT;
  11.         PrintService printService[] = PrintServiceLookup.lookupPrintServices(flavor, pras);//用户可选用的PrintService实例数组。
  12.         PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService(); //默认的PrintService
  13.         /*为用户提供一个选择 PrintService(打印机)的对话框。
  14.             gc - 用于选择屏幕。null 意味着主屏幕或默认屏幕。
  15.             x - 对话框在屏幕坐标中的位置,包括边框
  16.             y - 对话框在屏幕坐标中的位置,包括边框
  17.             services - 可浏览的服务,必须不为 null。
  18.             defaultService - 要显示的初始 PrintService。
  19.             flavor - 要打印的 flavor,或者为 null。
  20.             attributes - 输入时为应用程序最初提供的首选项。这不能为 null,但可以为空。输出时为反映用户所作的更改的属性。
  21.         */ 
  22.         PrintService service = ServiceUI.printDialog(null200200,printService, defaultService, flavor, pras);
  23.         if (service != null) {
  24.             DocPrintJob job = service.createPrintJob();  //创建打印任务
  25.             FileInputStream fis = new FileInputStream(filename);
  26.             DocAttributeSet das = new HashDocAttributeSet();
  27.             /*
  28.              * 定义要打印的文档,SimpleDoc(,,)里有三个参数:
  29.              *      ·Object 代表要打印的内容
  30.              *      ·DocFlavor的一个实例描述数据类型
  31.              *      ·可选的DocAttributeSet 包含打印时的属性
  32.              */
  33.             Doc doc = new SimpleDoc(fis, flavor, das);
  34.             /*   启动打印 job.print( , )
  35.              * doc - 要打印的文档。如果必须是一个 flavor,则此 PrintJob 必须支持它。
  36.              *  attributes - 应用到此 PrintJob 的作业属性。如果此参数为 null,则使用默认属性。 
  37.              * */
  38.             job.print(doc, pras);
  39.             Thread.sleep(10000);
  40.         }
  41.         System.exit(0);
  42.     }
  43.     
  44.     
  45. }

 

详细资料可见:http://java.sun.com/javase/6/docs/technotes/guides/jps/spec/JPSTOC.fm.html

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值