基于规则的PDF文本提取各种账单和发票

时间:2012-04-17 10:05:47

标签: pdf text-extraction

我必须从发票和账单中提取文本pdf文件

文件布局可能变得复杂,尽管它主要是表格。

我已经阅读了几篇关于pdf格式的文章,我们的大脑掌握它的难易程度以及机器理解其结构的难度。

还下载了一些工具,比如python的pdfminer和一些java工具,有些甚至还有基于规则的布局提取,比如LA-PDBtext这些都是很棒的库,让你走到最后一步。

Adob​​e还有一个名为exportPdf的在线服务,但它无法自定义

最重要的是,据我所知,为了从结构化的pdf文件中提取文本并将其转换为XML,应该有一定程度的手工工作。

我还发现了From Data Extractor,这是一款非免费工具,可以设置声称可以完成工作的提取规则,但很难找到合适的手册,而且只能在Windows上运行。

我想我甚至可以尝试将这些文件转换为图片并尝试tesseract-ocr,但在我花更多时间之前决定先征求意见。

如果有经验的人给我一个暗示,我将非常感激。

2 个答案:

答案 0 :(得分:7)

我已经做了大量的PDF提取,我可以确认,因为你已经发现它可能是一个痛苦的过程。要理解的一个重要事项是,PDF中没有“表格”的概念,只是恰好有文字围绕它的文本。此外,无法保证PDF代码中文本的线性顺序与打印时的可视顺序实际匹配。换句话说,不能保证按顺序编写“hello world”,它可能是draw 'word' at coord 20 then draw 'hello' at coord 10。大多数PDF创作者不这样做,但仍然无法保证。 PDF创建者(InDesign,Illustrator等)的创造性越高,文本越难以脱离。实际上,一旦设计师开始搞乱字体太多,有些程序有时实际上会一次输出一个字符,每次都会略微改变字体。

那就是说,我推荐你看过的第一个,LA-PDFText。您可以在discovery mode(blockify)中运行它,您可以从中创建规则。我没有安装Java,所以我无法测试它,但它看起来很有希望。

您的第二个,A-PDF表单数据提取器,仅适用于实际的PDF表单。如果是这种情况,我建议您使用像iText / iTextSharp这样的开源解决方案。

最后一个OCR让我感到畏缩。我无法想象通过这些箍会比解析PDF更能让你获得更好的文本表示。但话说回来,PDF是一种视觉格式,所以可能会这样。

我个人使用iText/iTextSharp来做这件事,但我也喜欢用艰难的方式做事。

答案 1 :(得分:3)

目前尚不清楚您是否正在寻找开发工具来自动从账单和发票中提取数据,还是只寻找非开发人员可以使用的一次性工具(实用工具)?

无论如何,这里有一些专业工具,包括他们使用的引擎:

  1. Tabula(开源,专门用于从PDF中的表中提取数据。可以导出用于批处理的shell脚本,作为localhost Web服务运行,由JRuby Tabula engine提供支持)
  2. Viet OCR(用于从PDF和图像中提取文本的开源.NET桌面实用程序,基于tesseract oct engine
  3. Bytescout PDF Viewer(免费软件封闭源.NET实用程序,检测并提取表格,包括扫描的发票,由PDF Extractor SDK提供支持)
  4. 免责声明:我为ByteScout工作。

相关问题