【发布时间】:2015-10-07 12:23:47
【问题描述】:
我正在使用 itext 5.3.4 从 PDF 文件中提取文本。我用来执行此操作的代码如下:
PdfReaderContentParser parser = new PdfReaderContentParser(pdfReader);
TextExtractionStrategy strategy;
StringBuffer sb = new StringBuffer();
for (int i = 1; i <= pdfReader.getNumberOfPages(); i++)
{
strategy = parser.processContent(i, new SimpleTextExtractionStrategy());
sb.append(strategy.getResultantText());
}
String text = sb.toString();
然而,对于特定的 PDF,ë 返回为 °。知道为什么会发生这种情况以及可以做些什么吗?是itext库的BUG还是PDF的构建出错了?
感谢您的帮助。
【问题讨论】:
-
测试的第一件事——别担心,这很简单——是用 Acrobat Reader 复制文本并将其粘贴到其他地方。如果 Acrobat Reader 无法忠实地阅读文本,则问题出在 PDF 的可能性很高。
-
还有一件事要做:请更新。 5.3.x 版本是文本提取代码更改的时代。
-
查看stackoverflow.com/a/32929474/1520650 了解类似问题以及对此行为的可能解释。
-
升级到 itext 5.5.7 版解决了这个问题