如何从PDF文件同时跟踪其结构中提取数据?

问题描述 投票:13回答:6

我的目标是在分析它的结构从PDF文件中提取文本和图像。用于解析结构的范围不是穷尽的;我只需要能够识别标题和段落。

我已经尝试了一些不同的东西,但我没有任何他们走得很远:

  • PDF格式转换为文本。因为我失去了图片和文档的结构它不会为我工作。
  • PDF格式转换为HTML。我发现了一些工具,帮助我这一点,最好的一个迄今pdftohtml。该工具是非常好的表现明智的,但我一直没能成功地解析HTML。
  • PDF格式转换为XML。同上。

任何人对如何解决这个问题有什么建议?

pdf parsing extraction
6个回答
11
投票

有本质上不是一个简单的剪切和粘贴解决方案,因为PDF是不是真的在结构上非常感兴趣。还有在这个网站会告诉你的东西更多的细节很多其他的答案,但是这一次应该给你的主要观点:

If identifying text structure in PDF documents is so difficult, how do PDF readers do it so well?

如果你想这样做的PDF本身(在那里你会在过程中的多数控制权的),你必须遍历网页上的所有文本,并通过观察它们的文本属性(识别头中使用的字体,大小相对于其他文本的页面上,等...)。

最重要的是,你还必须通过查看文本片段,页面上的空白,某些字母,单词和行的亲近......的定位,以确定段落PDF本身甚至没有一个概念“字”,更谈不上“行”或“段落”。

使事情更加复杂的是,该方式绘制文本在页面上(因此在它出现在PDF文件本身的顺序)甚至没有被正确的阅读顺序(或什么我们人类会认为是正确的读取顺序)。


3
投票

你可以做用下面的办法这样与iTextSharp的或其它的开源库:

  • 阅读PDF文件与iTextSharp或类似的开源工具,并收集所有文本对象到一个数组(或转换PDF使用像pdftohtml工具为HTML,然后解析HTML)
  • 排序的所有文字由坐标对象,因此你将有他们在一起
  • 然后通过迭代的对象,并检查它们之间的距离,看是否2个或多个对象可以合并到一个段落或不

或者,你可以使用像ByteScout PDF Extractor SDK,它能够准确地做这样的商业工具:

  • 有分析文本的布局沿中提取文本和图像
  • XML或CSV其中文本对象被合并或分裂成几段虚拟界面网格内
  • 通过特殊的API,使得它能够解决通过其“虚拟”的行和列索引忽略它是如何保存原始PDF中的每个对象访问对象。

免责声明:我是隶属于ByteScout


2
投票

页眉和它的子内容PDF解析真的是非常困难的(这并不意味着它是不可能的),如PDF表现出不同的格式。但我最近与一个名为GROBID工具,它可以在这种情况下帮助遇到。我知道这不是完美的,但如果我们提供适当的培训,它可以实现我们的目标。

Grobid可作为GitHub上一个开源。

https://github.com/kermitt2/grobid


0
投票

除非它被标记的内容,PDF不具有结构....你必须“猜测”这是什么样的各种工具都在做。有一个很好的博客文章,解释在http://blog.idrsolutions.com/2010/09/the-easy-way-to-discover-if-a-pdf-file-contains-structured-content/问题


0
投票

PDF文件可以使用塔布拉-PY,或塔布拉的Java解析。

我对如何在this article使用塔布拉-PY一个完整的教程。您可以在Web浏览器太,只要你已经安装了Java塔布拉。


-5
投票

iText的API:PdfReader PR =新PdfReader( “C:\检验.pdf”);

参考文献:PDFReader

© www.soinside.com 2019 - 2024. All rights reserved.