java - 您是否总是需要关闭新的 PDDocument 对象?

标签 java pdfbox

您是否只需要在加载/保存操作后或创建每个新的 PDDocument 对象后关闭 PDDocument(例如,在执行合并/拆分/...操作时)?

例如,我有 3 个从字节数组加载的 PDDocuments:

PDDocument pdf1 = PDDocument.load(bytearray1);
PDDocument pdf2 = PDDocument.load(bytearray2);
PDDocument pdf3 = PDDocument.load(bytearray3);

假设我然后将这 3 个 pdf 合并到一个 PDDocument 中:

PdfMergerUtility merger = new PdfMergerUtility();
PDDocument mergedPdf = new PDDocument();
mergedDocument.appendDocument(mergedPdf, pdf1);
mergedDocument.appendDocument(mergedPdf, pdf2);
mergedDocument.appendDocument(mergedPdf, pdf3);

我关闭了 3 个 pdf:

pdf1.close();
pdf2.close();
pdf3.close();

但是我现在还必须关闭 mergedPdf 还是不需要这样做?

mergedPdf.close(); // is this needed?

最佳答案

使用完所有 PDDocument 对象后,您应该关闭它们,还有 mergedPdf。这是一个很好的做法,可以避免内存泄漏。如果可能,请使用 try-with-resources。

关于java - 您是否总是需要关闭新的 PDDocument 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54913601/

相关文章:

java - 通过 webdrivermanager 使用 Selenium 运行 Opera 浏览器时出现问题

java - spring 4 @PropertySource 相对路径

java - PDFBox 图像元数据

java - 从PDF过滤出超过特定字体大小的所有文本

java - 使用 pdfbox 将 pdf 转换为 byte[],反之亦然

java - 使用pdfbox 2.0.12 java的多个设计?

java - BadPaddingException:android 解密 block 中的填充 block 已损坏

java - 正则表达式初始化问题

java - 如何在 Java Swing 应用程序中的 JTable 单元格内正确设置可编辑复选框?

java - PDFbox arabic textnot show 从数据库 mysql 检索