繁体   English   中英

用Java生成的PDF报告上的文本提取

[英]Text Extraction on a Generated PDF report in Java

我有超过6500名学生的学术成绩PDF。 我没有访问实际数据库的权限,我梦dream以求的是从这个漫长而又格式合理的文档中提取数据。 此数据将用于分析和可视化目的。

这是本文档的前5页〜1 MB

请帮我

  1. 是否可以提取此数据? 如果是的话,编写代码需要花费多少时间?
  2. 一些工具和库最好使用JAVA。
  3. 链接到教程或指南。

提前致谢。

是否可以提取此数据?

是。 PDF包含从文档中提取文本数据所需的所有信息。 此外,表格列似乎在每个页面上的相同位置开始。

一种方法是提取文本而不破坏布局。 对于所讨论的文档而言,这是非常明智且容易的,因为它是从纯文本文件开始创建的。 然后,您可以逐行分析该文本。

如果是的话,编写代码需要花费多少时间?

这取决于编码人员的技能。 文本提取将使用某些PDF库完成,因此仅保留对文本的分析,并且在您的文件看起来很简单的情况下。 在第一天就可以进行概念验证,而整个过程不超过一周。

一些工具和库最好使用JAVA。

有多个开源库(我想到的是iText,PDFBox,PDFClown;一定要了解各自的许可条件),此外,还有许多开源库也提供文本提取功能。

链接到教程或指南。

教程/指南/样本通常可以在所选库的网站上找到。

我的建议是尝试几个这样的库,并检查它们的文本提取输出是否符合原始布局,它们的性能是否足够,它们的资源要求是否可以接受以及它们的许可条件是否适合您。

(以下是与最初提供的PDF有关的原始答案,该PDF是为防止文本提取而构建的)

是否可以提取此数据?

虽然您的文档的格式看上去确实不错 ,但是严格来说,它不包含任何文本。 您可能已经尝试过从PDF查看器复制和粘贴,并且对它无法提取任何内容感到失望。

您的PDF代替了文本绘制操作(通常或多或少地从中提取文本),而是使用了路径绘制操作,即线条,曲线等,并且它们对每个单个字母使用许多操作来绘制文本。 顺便说一下,这解释了文件的巨大大小。

因此,无法立即从文档中提取文本。 您要么必须浏览内容,要么识别绘制操作以创建单个字母,然后从中创建文本; 否则您必须将PDF渲染为位图并应用OCR。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM