从扫描的pdf中提取文本

时间:2015-03-13 10:06:45

标签: python pdf ghostscript pdftotext

我的问题是我有一堆PDF文件,我想将它们转换为文本文件。其中一些是纯PDF,而另一些则是内部扫描页面。我在python中编写程序,所以我使用pdftotext将它们转换为TXT。

我正在使用以下命令

filename = glob.glob(src)  //src is my directory with my files 
    for file in filename:
        subprocess.call(["pdftotext", file])

我想问的是,在转换之前是否有办法检查扫描页面,以便我可以使用带有pdftotext的ghostscript命令来操作它们。 现在我有一个阈值来检查.txt文件的大小,如果它低于该阈值,我使用ghostscript命令来操作它们。

问题在于,即使使用pdftotext,对于从90页扫描50或60的大型文件,文件的大小始终高于阈值。

1 个答案:

答案 0 :(得分:0)

'纯'PDF文件中可以包含图片....

判断PDF文件是否为扫描页面并不容易。我认为,你最好的选择是分析页面内容流,看看它们是否只包含图像(一些扫描仪将单个扫描页面分成多个图像)。您可以假设它们是扫描页面,无论如何您不会使用Ghostscript从中获取任何文本。

另一种方法是使用ghostscript的pdf_info.ps程序并使用列表字体。没有字体==没有文字,虽然可能存在字体,但仍然没有文字。此外,我认为这不适用于逐页。