在PDF

时间:2018-04-04 07:18:15

标签: python pdf

我有一个PDF文件,我正在尝试从中获取特定数据。

我已经能够通过PyPDF2将PDF解析为一个长字符串,但由于 - 我假设 - 在原始PDF中进行格式化,因此难以搜索特定数据。

我要做的是检索特定的已知字段和紧随其后的数据(在PDF中格式化),然后将它们存储在单独的变量中。

PDF是账单,因此都以完全相同的方式呈现,具有定义的字段和图像。所以我要做的是提取这些字段。

实现这一目标的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

  

我有一个PDF文件,我正在尝试从中获取特定数据。

一般来说,它可能不可能(或极其困难),细节(比你没有提到的)非常重要。详细研究复杂PDF specification。请注意PDF is (more or less accidentally) Turing complete(因此您的问题通常是undecidable,因为它等同于halting problem)。

例如,普通的人类读者可以将文档中的数字读取为文本或JPEG图像等。实际上,许多PDF文档都有这样的数据......实际上,PDF是输出 - 只有格式,专为屏幕显示和打印而设计,而不是从中提取数据。

您需要了解PDF文件是如何生成的(使用什么确切的软件,来自实际数据)。在没有帮助的情况下,这可能需要花费大量时间(可能需要几年的全职逆向工程)。

更好的方法是联系提供该PDF文件的个人或实体,并协商访问实际数据的某种方式(或者至少获得有关该特定PDF文件生成的详细说明)。例如,如果PDF文件是从某个数据库计算的,那么您最好访问该数据库。

也许在PDF文件中使用元数据或注释可能有助于猜测它是如何生成的。

数据源可能会产生各种PDF文件。例如,我的廉价扫描仪能够生成PDF。但是你的程序很难从中提取一些数值数据(因为这种类型的PDF实际上是将像素化的图像包裹在JPEG中)并且需要部署图像识别技术(即OCR)来实现这一点。