【发布时间】:2016-12-06 16:13:04
【问题描述】:
我正在尝试使用 itext 4.2.0 实用程序连接 2 个 PDF。在少数情况下,它会在下面的代码中抛出 InvalidPDFException
reader = new PdfReader("c:\tmp\test.pdf");
com.itextpdf.text.exceptions.InvalidPdfException:未找到消息 未找到预告片 com.itextpdf.text.pdf.PdfReader.rebuildXref(未知来源)在 com.itextpdf.text.pdf.PdfReader.readPdf(未知来源)在 com.itextpdf.text.pdf.PdfReader.(Unknown Source) at com.itextpdf.text.pdf.PdfReader.(未知来源)
此 PDF 是有效的 - 我在文本编辑器中打开它并确保它具有 %PDF 以及 %EOF 推荐 here
更新
iText 版本为 2.1.7。 jar 被错误地命名为 4.2.0。
提到的路径(“c:\tmp\test.pdf”)是示例一。我们发送为“c:/tmp/test.pdf”
【问题讨论】:
-
将
"c:\tmp\test.pdf"替换为"c:\\tmp\\test.pdf"- 或者您真的有包含水平制表符的文件名? -
iText 4.2.0 从未由 iText Software 发布。我强烈建议您使用 2.1.7 或 5.5.10。
-
请分享有问题的 PDF 文件以供分析。没有它,我们只能假设它是缺陷。
-
iText 最高版本 2.1.7 是
com.lowagie.*。任何高于 2.1.7 的版本,包括 ymasory/InProTopia 臭名昭著的 gork,都是com.itextpdf.*。如果您的例外是com.itextpdf.text.exceptions.InvalidPdfException,那么您的 iText 版本绝对是不是 2.1.7。 -
@AmedeeVanGasse AFAIK 4.2s 也使用
com.lowagie.*(在包更改之前已应用 4.2.0 标签),因此 OP 似乎实际上使用了 5.x AGPL 版本。跨度>