无法读取 Java 中 pdf 文件的生成文本



我正在尝试用Java阅读文本,但它表现不佳。 这是我的代码

PDFTextStripper pdfStripper = null;
PDDocument pdDoc = null;
COSDocument cosDoc = null;
File pdfFile = new File("1.pdf");
PDFParser parser = new PDFParser(new RandomAccessFile(pdfFile,"rw"));
parser.parse();
cosDoc = parser.getDocument();
pdfStripper = new PDFTextStripper();
pdDoc = new PDDocument(cosDoc);
pdfStripper.setStartPage(1);
pdfStripper.setEndPage(5);
String parsedText = pdfStripper.getText(pdDoc);
System.out.println(parsedText);

但结果是这样的

请稍候。。。

如果此消息最终未被文档的正确内容替换,则您的 PDF 查看器可能无法显示此类型的文档。

您可以通过以下方式升级到最新版本的 Adobe Reader for Windows®、Mac 或 Linux® 参观 http://www.adobe.com/go/reader_download。

有关 Adobe Reader 的更多帮助,请访问 http://www.adobe.com/go/acrreader。

Windows 是 Microsoft Corporation 在美国和/或其他国家/地区的注册商标或商标。Mac 是商标 苹果公司,在美国和其他国家注册。Linux 是 Linus Torvalds 在美国和其他国家的注册商标。 国家。

我发现此错误是由于xfa pdf文档而发生的。 但是我不知道我的pdf文档的xfa格式。 所以请让我知道我如何知道 xfa 格式。

请有人帮我。 谢谢!

总结一下评论中所说的或暗示的内容......

OP引用的文字,

请稍候。。。

如果此消息最终未被文档的正确内容替换,则 PDF 查看器可能无法显示此类文档。

是Adobe软件通常以纯XFA形式放入PDF中的单个PDF页面的内容。

XFA表单是描述PDF表单的另一种方式。与AcroForm方式相比,XFA表单仅使用PDF作为信封,其中包含XML流,以与任何其他PDF结构无关的方式描述表单的属性,行为和值。

因此,许多PDF处理器仅对XFA表单提供基本支持(或根本不提供),主要的例外是(显然)Adobe产品。

因此,XFA在当前的PDF规范ISO 32000-2中已被标记为弃用。


在PDFBox的情况下,XFA支持仅限于检索XFA XML数据的功能。使用PdfTextStripper和相关类的文本提取仅对常规 PDF 内容进行操作,因此仅检索 OP 报告的文本。

要访问 XFA 表单的内容,您可以使用PDAcroForm.getXFA()检索 XFA 资源。

最新更新