1

当我尝试使用 itext在此链接http://www.health.state.mn.us/divs/hpsc/hep/merc/ctfapp2015b.pdf打开 pdf 时,我得到一个带有以下堆栈跟踪的 NullPointerException:

NullPointerException   com.itextpdf.kernel.pdf.tagging.ParentTreeHandler.registerMcr (ParentTreeHandler.java:154)
java.lang.NullPointerException
    at com.itextpdf.kernel.pdf.tagging.ParentTreeHandler.registerMcr(ParentTreeHandler.java:154)
    at com.itextpdf.kernel.pdf.tagging.ParentTreeHandler.registerAllMcrs(ParentTreeHandler.java:246)
    at com.itextpdf.kernel.pdf.tagging.ParentTreeHandler.<init>(ParentTreeHandler.java:101)
    at com.itextpdf.kernel.pdf.tagging.PdfStructTreeRoot.<init>(PdfStructTreeRoot.java:78)
    at com.itextpdf.kernel.pdf.PdfDocument.open(PdfDocument.java:1299)
    at com.itextpdf.kernel.pdf.PdfDocument.<init>(PdfDocument.java:199)

我的代码很简单:

(new PdfDocument(new PdfReader "blah.pdf"));

这个 PDF 有什么问题吗?是否需要传递某些类型的标志才能打开它?

编辑:使用 iText 7.0.0 时会发生这种情况。

4

1 回答 1

5

您的文档具有损坏的结构树或标记树。您还可以检查 Acrobat(或任何其他 PDF 查看器)在您打开标签时显示的内容。当您点击一个标签时,阅读器无法找到该标签对应的内容。

我不认为您将能够在 iText 7.0.0 中毫无例外地打开此文档,但这个问题已经修复(现在只打印记录器错误并且没有抛出异常),并且修复将在 7.0.1 中可用. 或者,如果您需要尽快修复,您可以查看当前的快照版本。

于 2016-08-12T09:21:19.923 回答