为什么我收到警告消息 "Removed /IDTree from /Names dictionary, doesn't belong there"?

Why i get the warning message "Removed /IDTree from /Names dictionary, doesn't belong there"?

我的代码可以正常工作,但我在控制台上收到这条警告消息:

“从 /Names 字典中删除了 /IDTree,不属于那里”

我刚刚搜索过它,但我没有找到任何东西。 有人知道是什么导致了这条警告消息吗?

我的代码:

public static void abrirArquivoZipPdfCompleto(HttpServletResponse response, String fileName, List<ByteArrayInputStream[]> conteudosZIP)
        throws Exception {

    response.setContentType("application/zip");
    response.setHeader("Content-Disposition", "attachment;filename=" + fileName.replaceAll("\u0020", "_").replaceAll(",", "_") + ".zip");
    
    ServletOutputStream out = response.getOutputStream();
    ZipOutputStream zout = new ZipOutputStream(out);
    Integer cont = 1;
    
    for(ByteArrayInputStream[] conteudoArray : conteudosZIP ) {
        try(PDDocument result = new PDDocument()){
            PDFMergerUtility ut = new PDFMergerUtility();
            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
            for(ByteArrayInputStream conteudo : conteudoArray) {
                try (PDDocument conteudoPDDocument = PDDocument.load(conteudo)){
                    ut.appendDocument(result, conteudoPDDocument);
                }finally {
                    conteudo.close();
                }
            }
            result.save(byteArrayOutputStream);
            ZipEntry ze = new ZipEntry(fileName + '_' + cont++ + ".pdf");
            zout.putNextEntry(ze);
            zout.write(byteArrayOutputStream.toByteArray());
            zout.closeEntry();
            byteArrayOutputStream.close();
        }
    }
    zout.close();
    out.close();
    FacesContext.getCurrentInstance().getRenderResponse();
    FacesContext.getCurrentInstance().responseComplete();
}

tl;dr:别打扰了。

该消息表明 /Name 字典中有一个 /IDTree(它是 PDF 结构树的一部分),PDFBox 删除了那个,因为它不属于这个地方。然而,这是 PDFBox 中的一个错误,它根本不检查 IDTree 是否存在。

如果 /IDtree 真的存在那么它就不会有害,唯一要做的就是检查创建该 PDF 的软件并检查它是否是最新的,然后尝试联系供应商并指向 PDF 规范。

该错误已在 PDFBOX-5100 中修复,并将在 2.0.23 中。

我已经解决了这个警告问题,包括这一行:

pmu.setDocumentMergeMode(PDFMergerUtility.DocumentMergeMode.OPTIMIZE_RESOURCES_MODE);

pmu 是 PDFMergerUtility 的一个实例。

顺便说一句,我使用的是 2.0.22 版