2017-09-15 91 views
-4

当从PDF中读取文本时,它在Python3中如何识别?我想知道Python3如何“看到”它,以便我可以告诉它需要查找,保存什么信息等。如何从Python中的“可见”PDF中提取文本?

我的最终目标是阅读PDF,从读取的信息中查找某些文本,然后创建一个新的仅包含符合标准的信息行。作为一个粗略的例子(伪代码):

-Read the PDF,if column 4 has a'x'in,copy the ROW to a separate file(skip,if it does not contain'x'),继续直到PDF结束。

-Read NEW doc,如果第1列有'n',请保留行,否则删除它。

我知道这不是最理想的做法,我计划在稍后修复该部分。

+1

你自己做了什么研究吗? http://www.unixuser.org/~euske/python/pdfminer/index.html –

+1

您应该首先阅读您正在使用的PDF工具的源代码(如果可用)。看看[Stack Overflow用户需要多少研究工作?](http://meta.stackoverflow.com/q/261592/7432) –

回答

-1

从一般意义上讲,这是非常非常困难的。 PDF格式允许以任何顺序在页面上的任何位置“绘制”个人字或字母。

这意味着您看到的“段落”在PDF文件中可能存在或不存在任何连续的含义。 PDF阅读器(Acrobat等)仅定位每个单词/字母,使它们看起来全部在一个段落中。

所以,你可能呈现的页面,然后逐个像素看看,以确定如何排列文本。 (这就是为什么如果你尝试简单的剪切& PDF的粘贴,有时会出现混乱。)

好消息是,你通常会得到不错的订购(PDF渲染器不会故意有意识地混乱的文本)。这就是现在的工具,如pdfminer的工作。

的表类似:看到他们为表,PDF把它们看作一系列具有同一水平的细胞失调的,但不同的垂直偏移(不一定在文件中的顺序相同。)

正如其他人所建议的,查看pdfminer,阅读PDF规范,调查如何格式化您的 PDF文件。

+0

在写这个问题之前,我看了一下PDF矿工,并试着去看其他问题以及。当你甚至不确定什么是什么时,很难去寻找某些东西。人们在这里很快判断并假设。谢谢pbuck的解释。不知道它让我更接近实际的代码,但我确实学到了一些东西 – platypus87