【问题标题】:PdfBox text extraction not working properlyPdfBox 文本提取无法正常工作
【发布时间】:2013-11-19 09:45:59
【问题描述】:
PDFTextStripper stripper = new PDFTextStripper();
PDDocument document = PDDocument.load(inputStream);
String text = stripper.getText(document);

提取文本:http://pastebin.com/BXFfMy0z

问题pdf:http://www.iwb.ch/media/Unternehmen/Dokumente/inserat_leiter_pm.pdf

如何从这个 pdf 文件中提取正确的文本?

【问题讨论】:

  • 嗨,你找到解决这个问题的方法了吗?

标签: java pdf pdfbox


【解决方案1】:

除了@karthik27 的回答:

Adobe Reader 在文本提取方面相当出色,因此通常可以用作指标是否可以从给定文档中提取文本。

因此,每当您有自己的文本提取无法处理的文档时,请在阅读器中打开它并尝试从中复制和粘贴。如果这导致垃圾,很可能是not authored properly for text extraction,无论是错误还是设计。

如果是您的文档,我确实会从 Adob​​e Reader 中复制和粘贴不可见和特殊字符的半随机集合,例如 you did with PDFBox,即垃圾。因此,很可能只有 OCR 才能从中提取文本。

【讨论】:

  • 碰巧@karthik27 的第二个链接提供了确切的答案:“幸运的是,字体子集通常会留下足够的信息供聪明的文本提取器使用。例如,字形名称通常包含原始字符代码:'T' 的 ASCII 码是 84,字体子集可能使用 'p84' 作为该字符的字形名称。" 虽然字符名称使用 ' C'前缀,而不是'p'。所以,如果 OP 感觉足够强大,他可以在没有 OCR 的情况下处理它。
  • 嗯,我认为他可以手动读取手头文档中的文本并将其键入文本文档,而不是弄清楚这些细节。但事实上,如果它是一个非常长的文档或一个大的、同质的文档集合,那么这种聪明可能是一个优势。
【解决方案2】:

我认为问题是编码.. pdf 文本以不同的格式编码.. 如果您右键单击文档并单击文档属性.. 您可以找到编码。我想下面的链接会给你更多的解释

link1
link2

【讨论】:

    【解决方案3】:

    原始文件应包含到 Unicode 的映射。这部分不存在,因此您在提取后得到了损坏的文本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-27
      • 1970-01-01
      相关资源
      最近更新 更多