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