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();//打印一组页面。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM