1. 程式人生 > 其它 >SpringBoot系列---【java實現呼叫印表機】

SpringBoot系列---【java實現呼叫印表機】

1.準備工作

  要呼叫的電腦已經連上印表機,並且可以正常列印。

2.引入pom依賴

<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>pdfbox</artifactId>
    <version>2.0.8</version>
</dependency>

3.Demo示例

   @ApiOperation(value = "列印測試")
    @GetMapping("/print1")
    public
void 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 = new
File(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(); }