【发布时间】:2013-11-07 15:10:55
【问题描述】:
我正在尝试将两个标记的 PDF 与 iTextPDF 5.4.4 版本的 jar 合并。完成所有操作后关闭文档就行了:document.close();):。它抛出以下错误
java.lang.NullPointerException
PDF Creation Failed java.lang.NullPointerException
[B@1d5c1d5c
at com.itextpdf.text.pdf.PdfCopy.fixTaggedStructure(PdfCopy.java:878)
at com.itextpdf.text.pdf.PdfCopy.flushTaggedObjects(PdfCopy.java:799)
at com.itextpdf.text.pdf.PdfDocument.close(PdfDocument.java:836)
at com.itextpdf.text.Document.close(Document.java:416)
at PDFMerger.mergePDF(PDFMerger.java:189)
请告诉我这个问题的可能原因。
下面是我使用的代码。
PdfReader reader = new PdfReader(pdf);
boolean setTagged=reader.isTagged() ;
Document document = new Document();
PdfCopy copy = new PdfCopy(document, new FileOutputStream("Merged.pdf"));
copy.setTagged();
document.open();
int n;
n = reader.getNumberOfPages();
for (int page = 0; page < n; ) {
copy.addPage(copy.getImportedPage(reader, ++page,true));
}
copy.freeReader(reader);
document.close();
reader.close();
【问题讨论】:
-
根据代码 (PdfCopy.fixTaggedStructure(PdfCopy.java:878)) iText 似乎期望在某处有一个 PG 条目,但您的源 PDF 不包含它。能否分享给大家分析一下是文档问题还是iText问题?
-
感谢 MKL。我们想与您分享该文件以供进一步分析。你能告诉我发送它的电子邮件ID吗?
-
我在我的 stackoverflow 配置文件描述中添加了一个地址。不过,我认为其他人也有兴趣,尤其是开发 iText 的人。除非文档不得公开,否则您可能希望通过文件共享(例如 Dropbox 或 google)而不是邮件来提供。
-
感谢 MKL。我已将文件邮寄给您。你能看一下吗?
-
@Comm 你能把你发给 mkl 的 PDF 发给我们,以便我们测试修复吗?我已在我的个人资料中添加了一个电子邮件地址。
标签: pdf itext itextpdf merging-data