我的目标是在分析它的结构从PDF文件中提取文本和图像。用于解析结构的范围不是穷尽的;我只需要能够识别标题和段落。
我已经尝试了一些不同的东西,但我没有任何他们走得很远:
任何人对如何解决这个问题有什么建议?
有本质上不是一个简单的剪切和粘贴解决方案,因为PDF是不是真的在结构上非常感兴趣。还有在这个网站会告诉你的东西更多的细节很多其他的答案,但是这一次应该给你的主要观点:
If identifying text structure in PDF documents is so difficult, how do PDF readers do it so well?
如果你想这样做的PDF本身(在那里你会在过程中的多数控制权的),你必须遍历网页上的所有文本,并通过观察它们的文本属性(识别头中使用的字体,大小相对于其他文本的页面上,等...)。
最重要的是,你还必须通过查看文本片段,页面上的空白,某些字母,单词和行的亲近......的定位,以确定段落PDF本身甚至没有一个概念“字”,更谈不上“行”或“段落”。
使事情更加复杂的是,该方式绘制文本在页面上(因此在它出现在PDF文件本身的顺序)甚至没有被正确的阅读顺序(或什么我们人类会认为是正确的读取顺序)。
你可以做用下面的办法这样与iTextSharp的或其它的开源库:
或者,你可以使用像ByteScout PDF Extractor SDK,它能够准确地做这样的商业工具:
免责声明:我是隶属于ByteScout
页眉和它的子内容PDF解析真的是非常困难的(这并不意味着它是不可能的),如PDF表现出不同的格式。但我最近与一个名为GROBID工具,它可以在这种情况下帮助遇到。我知道这不是完美的,但如果我们提供适当的培训,它可以实现我们的目标。
Grobid可作为GitHub上一个开源。
除非它被标记的内容,PDF不具有结构....你必须“猜测”这是什么样的各种工具都在做。有一个很好的博客文章,解释在http://blog.idrsolutions.com/2010/09/the-easy-way-to-discover-if-a-pdf-file-contains-structured-content/问题
PDF文件可以使用塔布拉-PY,或塔布拉的Java解析。
我对如何在this article使用塔布拉-PY一个完整的教程。您可以在Web浏览器太,只要你已经安装了Java塔布拉。
iText的API:PdfReader PR =新PdfReader( “C:\检验.pdf”);
参考文献:PDFReader