由于PdfDocument抛出NullPointerException,因此无法使用itext 7.0.0打开PDF

Big*_*ert 1 java pdf adobe itext7

当我尝试在这个链接打开pdf时,http://www.health.state.mn.us/divs/hpsc/hep/merc/ctfapp2015b.pdf,使用itext,我得到一个带有以下stacktrace的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)
Run Code Online (Sandbox Code Playgroud)

我的代码非常简单:

(new PdfDocument(new PdfReader "blah.pdf"));
Run Code Online (Sandbox Code Playgroud)

这个PDF有什么不妥之处吗?我需要通过哪些类型的标志才能打开它?

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

Ale*_*ach 5

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

我认为您无法在iText 7.0.0中毫无例外地打开此文档,但此问题已得到修复(现在只打印了记录器错误并且没有抛出异常),修复程序将在7.0.1中提供.或者,如果您需要更快修复,可以查看当前的快照版本.