问题描述
我正试图找出一种方法来处理使用Python或PHP扫描的pdf。 我需要能够打开多页PDF,读取内容,并根据文本中的标识符将页面移动到单个PDF文件(如果要分组,则将其移动到一个文件)。
我下载并使用玩了一下,但我不确定这是否是最好的方法。 我使用了扫描PDF的示例,通过pdftotext将其运行到txt文件并稍微围绕它。 它运作正常; 我能够找到一些标识符,但需要moar正则表达式技能才能有效。 但我仍然擅长拆分PDF并根据pdftotext移动它们。
有任何想法吗?
编辑:澄清。
- 使用pdftotext将每个pdf页面吐出到单个txt文件中;
- grep txt文件中的标识符,并编译那些相似的页面列表;
- 基于列表提取和组合(如果适用)相关页面并吐出每个页面的pdf;
- 根据分组移动生成的PDF到另一个位置;
PyPDF似乎是一个很好的起点。 这是我到目前为止:
from pyPdf import PdfFileWriter, PdfFileReader
import re
output = PdfFileWriter()
input1 = PdfFileReader(file("test.PDF", "rb"))
totalPages = input1.getNumPages()
print "total pages to process:" +str(totalPages)
for i in range(totalPages):
p = i
print "processing page %s" %str(i)
output.addPage(input1.getPage(p))
p = input1.getPage(p).extractText()#extract text to search for identifier
pr = re.search("identifier", p)#search for the identifier; to be replaced with a list
#if there's a match, do work
if pr:
outputStream = file("test"+str(i)+".pdf", "wb")
output.write(outputStream)
outputStream.close()
print 'match on page %s' %str(i)
print '\n'
然后从这里我可以使用另一个库来根据他们的位置合并PDF。
但另一个问题是:Python的re.search功能有多强大? 特别是处理阴暗的OCR,它可靠吗?
1楼
我在小项目中成功使用了 。
2楼
你试过PyPdf吗? 请参阅: :
以下是使用PyPdf提取文本的方法: ://code.activestate.com/recipes/511465-pure-python-pdf-to-text-converter/