我正在尝试用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 查看器可能无法显示此类文档。
您可以通过以下方式升级到适用于Windows®,Mac或Linux®的Adobe Reader的最新版本: 访问http://www.adobe.com/go/reader_download。
有关Adobe Reader的更多帮助,请访问http://www.adobe.com/go/acrreader。
Windows是Microsoft Corporation在美国和/或其他国家的注册商标或商标。 Mac是商标 Apple Inc.在美国和其他国家/地区注册的公司。 Linux是Linus Torvalds在美国和其他国家/地区的注册商标 国家。
我发现由于xfa pdf文档而发生此错误。 但是我不知道我的pdf文档的xfa格式。 因此,请让我知道如何了解xfa格式。
请有人帮我。 谢谢!
答案 0 :(得分:1)
总结评论中所说或暗示的内容...
OP引用的文本,
请稍候...
如果此消息最终没有被文档的正确内容替代,则您的PDF查看器可能无法显示此类文档。
...
是单个PDF页面的内容,通常是Adobe软件以纯XFA格式将其放入PDF。
XFA表单构成了描述PDF中表单的一种替代方法。与AcroForm方式相反,XFA表单仅将PDF用作信封,并以与其他PDF结构无关的方式描述表单的属性,行为和值的XML流。
因此,许多PDF处理器仅对XFA表单提供基本支持(或根本不提供),主要例外是(显然)Adobe产品。
结果,在当前的PDF规范ISO 32000-2中,XFA被标记为不推荐使用。
对于PDFBox,XFA支持仅限于检索XFA XML数据的功能。使用PdfTextStripper
和相关类进行文本提取仅适用于常规PDF内容,因此只能检索OP报告的文本。
要访问XFA表单的内容,可以使用PDAcroForm.getXFA()
检索XFA资源。