由于 PdfDocument 引发的 NullPointerException,无法使用 itext 7.0.0 打开 PDF

Unable to open PDF with itext 7.0.0 due to NullPointerException thrown by PdfDocument

当我尝试使用 itext 打开此 link、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 时会发生这种情况。

您的文档的结构树或标签树已损坏。您还可以检查打开标签时 Acrobat(或任何其他 PDF 查看器)显示的内容。当您点击标签时,reader 找不到与该标签对应的内容。

我认为您无法在 iText 7.0.0 中无一例外地打开此文档,但此问题已得到修复(现在仅打印记录器错误且不会抛出异常),修复将在在 7.0.1 中可用。或者,如果您需要尽快修复,可以查看当前快照版本。