PDF 使用 Java PDFBox 2.0.21 卡在 "printing" 状态

PDF stuck in "printing" state using Java PDFBox 2.0.21

我正在尝试在 Java 中设置打印机 class,它可以使用 PDFBox 打印 PDF 文件。 我的 printPdf 方法成功地将 .pdf 文件添加到打印机的队列中,但它根本不打印(它卡在“正在打印...”状态)。

它只发生在某些特定的 PDF 文件上。对于某些 pdf 文件,它可以完美运行,对于某些 pdf 文件,则会出现问题。

这是我用来打印 pdf 文件的代码:

File file = new File("C:/Users/user/Desktop/Java Printing.pdf");
FilePrinter.printPdf(file, "Printer name");

FilePrinter.printPdf方法:

public static void printPdf(File pdfFile, String laserName)
{
    PDDocument document = null;
    try {
        PrintRequestAttributeSet attr = new HashPrintRequestAttributeSet();
        attr.add(MediaSizeName.ISO_A4);
        attr.add(Sides.DUPLEX);
        document = PDDocument.load(pdfFile);

        PrintService[] printServices = PrintServiceLookup.lookupPrintServices(null, null);
        PrintService myPrintService = PrintServiceLookup.lookupDefaultPrintService();

        for (PrintService printer : printServices) {
            if (printer.getName().equals(laserName))
                myPrintService = printer;
        }

        PrinterJob job = PrinterJob.getPrinterJob();

        job.setPageable(new PDFPageable(document));
        job.setPrintService(myPrintService);

        job.print(attr);

    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
    finally{
        if(document != null) {
            try {
                document.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

我尝试打印的 pdf 文件有 2 页(它没有损坏我可以在任何网络浏览器中打开它),但是在打印机队列的文件属性中,它显示文件大小为 0 并且有 0 页(参见下一张图片)

File properties inside the printer's queue

Printer's queue status when I try to print the PDF

此问题与 PDFBox 相关吗?到我的打印机?如果我尝试从我的网络浏览器打印它,它就像一个魅力,但我真的无法用 java.

打印它

在完全卸载并重新安装打印机驱动程序后已修复。 Windows 告诉我它们是最新的时错了!