java和打印机_java实现打印机打印的区别
構(gòu)建打印任務(wù)方式不同:
1:直接通過指定的打印機(jī)創(chuàng)建打印任務(wù)
DocPrintJob ?job= myPrintService.createPrintJob();
2:手動(dòng)創(chuàng)建打印任務(wù),再與指定的打印機(jī)進(jìn)行關(guān)聯(lián)
PrinterJob job=PrinterJob.getPrinterJob();
job.setPrintServie(myPrintService);
執(zhí)行打印任務(wù)方式不同:
1、簡(jiǎn)單,將指定文件路徑變?yōu)榇蛴?shù)據(jù),直接進(jìn)行打印
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
Doc myDoc = new SimpleDoc(new File(""), flavor, null);
job.print(myDoc,pras);
2、復(fù)雜,需要將指定的文件轉(zhuǎn)換為PDF流到內(nèi)存,并指定好打印紙張相關(guān)屬性,最后進(jìn)行打印
PDDocument myDoc=PDDocument.load(new File(""));
Paper paper = new Paper();
paper.setSize(252, 141); // 打印的頁(yè)面的屬性。
paper.setImageableArea(0, 5, paper.getWidth(), paper.getHeight()); // 頁(yè)面上用來(lái)打印的區(qū)域。 左上角的 X 坐標(biāo),Y 坐標(biāo),區(qū)域?qū)挾?高度
PageFormat pageFormat = new PageFormat();
pageFormat.setPaper(paper);//為此 PageFormat 設(shè)置 Paper 對(duì)象
Book book = new Book();//Book 類提供文檔的表示形式,該文檔的頁(yè)面可以使用不同的頁(yè)面格式和頁(yè)面 painter。此類使用 Pageable 接口與 PrinterJob 交互。
book.append(new PDFPrintable(document), pageFormat, document.getNumberOfPages());//將多個(gè)頁(yè)面追加到此 Book 的尾部。
//查詢 document,以獲得頁(yè)面數(shù)和 Pageable 實(shí)例 document 中保存的每個(gè)頁(yè)面的 PageFormat 和 Printable。
job.setPageable(new PDFPageable(document, Orientation.PORTRAIT));
job.setPageable(book);
job.print();//打印一組頁(yè)面。
總結(jié)
以上是生活随笔為你收集整理的java和打印机_java实现打印机打印的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python正则表达式初识(七)_Pyt
- 下一篇: ldap seach java_从LDA