SpringBoot系列---【java實現呼叫印表機】
阿新 • • 發佈:2022-04-06
1.準備工作
要呼叫的電腦已經連上印表機,並且可以正常列印。
2.引入pom依賴
<dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId> <version>2.0.8</version> </dependency>
3.Demo示例
@ApiOperation(value = "列印測試") @GetMapping("/print1") publicvoid print(String printName) throws IOException, PrinterException { // // 使用印表機的名稱 // String printName = "\\\\172.17.1.127\\Canon-print"; String pdfPath = "C:\\Users\\admin\\OneDrive\\桌面\\project\\home-finance\\fast-boot\\src\\main\\resources\\風險預警0324-(緊急).pdf"; File file = newFile(pdfPath); // 讀取pdf檔案 PDDocument document = PDDocument.load(file); // 建立列印任務 PrinterJob job = PrinterJob.getPrinterJob(); // 遍歷所有印表機的名稱 for (PrintService ps : PrinterJob.lookupPrintServices()) { String psName = ps.toString(); // 選用指定印表機if (psName.equals(printName)) { job.setPrintService(ps); break; } } job.setPageable(new PDFPageable(document)); Paper paper = new Paper(); // 設定列印紙張大小 paper.setSize(598,842); // 1/72 inch // 設定列印位置 座標 paper.setImageableArea(0, 0, paper.getWidth(), paper.getHeight()); // no margins // custom page format PageFormat pageFormat = new PageFormat(); pageFormat.setPaper(paper); // override the page format Book book = new Book(); // append all pages 設定一些屬性 是否縮放 列印張數等 book.append(new PDFPrintable(document, Scaling.ACTUAL_SIZE), pageFormat, 1); job.setPageable(book); // 開始列印 job.print(); }