java实现打印机打印的区别

构建打印任务方式不同:

1:直接通过指定的打印机创建打印任务  

   DocPrintJob  job= myPrintService.createPrintJob();

 2:手动创建打印任务,再与指定的打印机进行关联

  PrinterJob job=PrinterJob.getPrinterJob(); 

  job.setPrintServie(myPrintService);

 

执行打印任务方式不同:

1、简单,将指定文件路径变为打印数据,直接进行打印

  PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();

    Doc myDoc = new SimpleDoc(new File(""), flavor, null);  

    job.print(myDoc,pras);

2、复杂,需要将指定的文件转换为PDF流到内存,并指定好打印纸张相关属性,最后进行打印

PDDocument myDoc=PDDocument.load(new File(""));

Paper paper = new Paper();
paper.setSize(252, 141); // 打印的页面的属性。
paper.setImageableArea(0, 5, paper.getWidth(), paper.getHeight()); // 页面上用来打印的区域。 左上角的 X 坐标,Y 坐标,区域宽度,高度

PageFormat pageFormat = new PageFormat();
pageFormat.setPaper(paper);//为此 PageFormat 设置 Paper 对象

Book book = new Book();//Book 类提供文档的表示形式,该文档的页面可以使用不同的页面格式和页面 painter。此类使用 Pageable 接口与 PrinterJob 交互。
book.append(new PDFPrintable(document), pageFormat, document.getNumberOfPages());//将多个页面追加到此 Book 的尾部。

//查询 document,以获得页面数和 Pageable 实例 document 中保存的每个页面的 PageFormat 和 Printable。
job.setPageable(new PDFPageable(document, Orientation.PORTRAIT));
job.setPageable(book);

job.print();//打印一组页面。

转载于:https://www.cnblogs.com/whstudyblog/p/8794853.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值