SpringBoot系列---【java實現調用打印機】


1.准備工作

  要調用的電腦已經連上打印機,並且可以正常打印。

2.引入pom依賴

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

3.Demo示例

 @ApiOperation(value = "打印測試")
    @PostMapping("/print1")
    public void print(String printName,@RequestPart("multipartFile") MultipartFile multipartFile) throws IOException, PrinterException {
//        // 使用打印機的名稱
//        String printName = "\\\\172.17.1.127\\Canon-print";
        
        /*
            保存上傳的文件到"e:\\"
         */
//        String pdfPath = "e:\\";
//        File file = new File(pdfPath+headerImg.getOriginalFilename());
//        InputStream inputStream = headerImg.getInputStream();
//        FileOutputStream out = new FileOutputStream(file);
//        IoUtil.copy(headerImg.getInputStream(),out);
//        out.write(headerImg.getBytes());
//        out.close();

        // 讀取pdf文件
        PDDocument document = PDDocument.load(multipartFile.getInputStream());
        // 創建打印任務
        PrinterJob job = PrinterJob.getPrinterJob();
        job.setJobName(multipartFile.getOriginalFilename());
        // 遍歷所有打印機的名稱
        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();
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM