9

我目前正在使用 PDF Box 来解析 pdf,并试图弄清楚如何检索有关文本的数据,例如字体(粗体、大小等)和字体的位置。

有什么建议么?

4

4 回答 4

6

在浏览了(很难找到的)PDFBox 文档之后,我发现了这个小宝石

显然,其中一个示例准确地显示了如何执行您要求的所有操作。基本上,您继承PdfTextStripper并覆盖该processTextPosition方法。在那里,您可以查询所需TextPosition的任何信息。

为了将来参考,您可以在此处找到 javaDoc:http: //pdfbox.apache.org/apidocs/index.html

编辑 2018-04-02:原始链接已失效,但可以在此处的 SVN 存储库中找到示例。

于 2011-06-22T17:42:23.213 回答
5

从 PDF 中提取文本的最佳方法之一TET,即文本提取工具包。TET 是 PDFlib.com 产品系列的一部分。

PDFlib.com 是 Thomas Merz(“PostScript and PDF Bible”的作者)的公司。

TET 的第一个化身是图书馆。那可能可以做任何你想做的事情,包括页面上每个文本元素的位置信息。哦,它还可以提取图像。它重新组合+合并碎片成碎片的图像。

pdflib.com 还提供了该技术的另一个化身,即Acrobat 的 TET 插件。显然,您还需要 Acrobat 才能使用它。

第三个化身是PDFlib TET iFilter。这是用于用户工作站的独立工具。这两者都是免费的(如啤酒),可用于私人、非商业目的。

最后,TET 还带有一个命令行界面。

TET 真的很强大。比 Adob​​e 自己的文本提取要好得多。它为我提取了其他工具(包括 Adob​​e 的)只吐出垃圾的文本。

几个月前,我测试了他们的桌面独立工具,他们在网页上说的是真的。它有一个非常好的命令行。我对该工具处理的一些“有问题的”PDF 测试文件非常满意。

这个东西是我对每一个复杂和具有挑战性的 PDF 文本提取要求的建议。

TET 简直太棒了。它检测表。在表格内部,它标识跨越多列的单元格。它分别标识每个表格单元格的表格行和内容。它很好地处理连字符:它删除连字符并恢复完整的单词。它支持非 ASCII 语言(包括 CJK、阿拉伯语和希伯来语)。当遇到连字时,它会恢复原来的字符...

试试看。

于 2011-06-21T12:04:10.797 回答
1

快速 PDF 库中带有提取选项 3 或 4的GetPageText函数为所选页面返回一个 CSV 字符串,其中包括文本(单个单词或一段文本)以及相关的字体名称、文本颜色、文本大小和坐标在页面上。

注意:这是一个商业图书馆,我为销售它的公司工作。

于 2011-06-22T11:27:13.200 回答
0

PDF 文件可以用 tabula-py 或 tabula-java 解析。

我在这篇文章中做了一个关于如何使用 tabula-py 的完整教程。只要您安装了 Java,您也可以在 Web 浏览器中制作表格。

于 2019-02-09T03:07:24.450 回答