当前位置: 首页 > 知识库问答 >
问题:

Java PDFBox打印PDDocument-“警告:您没有关闭PDF文档”

岑俊弼
2023-03-14

我正在尝试加载PDF文档并打印它。整个过程都正常,但我收到了以下警告“警告:您没有关闭PDF文档”,我不明白为什么在我关闭文档后会出现这种情况。它出现在第11行(job.print();)。因为它是在打印时发生的,所以我无法调试它。

private void print(ByteArrayInputStream document, String printerName) {
    PrinterJob job = PrinterJob.getPrinterJob();
    PDDocument doc = new PDDocument();

    if (checkForPrinter(printerName)) {
        try {
            doc = PDDocument.load(document);
            job.setPageable(new PDFPageable(doc));
            
            job.setPrintService(myService);
            job.print(); // --> "Warning: You did not close a PDF Document"

        } catch (PrinterException | IOException ex) {
            System.err.println(ex.getMessage());
        } finally {
            try {
                doc.close();
            } catch (IOException ex) {
                System.err.println(ex.getMessage());
            }
        }
    }
}

共有1个答案

邵繁
2023-03-14

见@pringi的评论。您应该简化您的try块,使用自动处理关闭的资源尝试处理,并且不需要使用本地doc=new PD文档()变量创建2 xPD文档

try(PDDocument doc = PDDocument.load(document)) {
    job.setPageable(new PDFPageable(doc));
    job.setPrintService(myService);
    job.print();
}
 类似资料:
  • 我想按页分割pdf到图像文件,但我得到了警告:你没有关闭PDF文档循环时renderImageBackDPI仍然有警告更新代码: 错误循环 总警告与页数相同。。。我已经尝试关闭但无法工作,这个过程使我的服务器成为java。lang.OutOfMemoryError:Java堆空间 更新: 这是调用拆分方法的代码......

  • 在对PDF文档进行数字签名后,我在Apache PDFBox中关闭了PDF文档。我收到警告:

  • 我正在尝试用Java设置一个printer类,它可以使用PDFBox打印PDF文件。我的printPdf方法已成功添加。打印机队列中的pdf文件,但它根本不打印(它卡在“打印…”中)国家)。 它只发生在某些特定的PDF文件上。对于某些pdf文件,它可以完美运行,对于某些文件,问题会发生。 以下是我用来打印pdf文件的代码: FilePrinter.printPdf方法: 我试图打印的pdf文件有2

  • 问题内容: 我正在验证器中发出很多警告,并且我想抑制stdout中的所有内容,除非提供给的消息。 即,现在我看到了: 我想看看这个: 编辑2: 覆盖工作: 问题答案: 具有您自己的自定义功能的Monkeypatch 。

  • 我目前的工作是创建机械图纸,用于发送给客户和作为施工图。当我的绘图完成后,我导出一个. pdf文件,并将其发送给客户端。 我们的客户非常喜欢黑白画,所以我试着提供他们。但是我用来画画的软件效果不好。它只有一个选项“所有颜色都是黑色”,我的画上有一些白色的“隐藏线”。当然,这些显示使用所有颜色作为黑色选项。 我找到了一个解决方案,那就是使用pdf打印机。效果很好,效果也很好。 现在我想打印这个。pd

  • 我使用以下Java代码打印PDF文档: 控制台上的输出是: 为什么我会收到这个警告?