处理PDF文件(读取,拆分,合并,移动)

时间:2011-03-09 15:21:50

标签: php python pdf

我正试图找出一种用Python或PHP处理扫描的pdf的方法。我需要能够打开多页PDF,读取内容,并根据文本中的标识符将页面移动到单个PDF文件(如果要分组,则将其移动到一个文件)。

我已下载并与pdftotext玩了一会儿,但我不确定这是否是最好的方法。我使用了扫描PDF的示例,通过pdftotext将其运行到txt文件并稍微围绕它。它运作正常;我能够找到一些标识符,但需要moar正则表达式技能才能有效。但我仍然擅长拆分PDF并根据pdftotext移动它们。

有什么想法吗?


编辑:澄清。

  1. 使用pdftotext将pdf的每个页面吐出到单个txt文件;
  2. grep txt文件中的标识符,并编译那些相似的页面列表;
  3. 根据列表提取并合并(如果适用)相关页面并吐出每个页面的pdf;
  4. 根据分组移动生成的PDF到另一个位置;

  5. 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,它可靠吗?

2 个答案:

答案 0 :(得分:2)

我在小项目上成功使用了pypdf

答案 1 :(得分:2)

你试过PyPdf吗?请参阅:http://pybrary.net/pyPdf/

这是一个使用PyPdf提取文本的方法:http://code.activestate.com/recipes/511465-pure-python-pdf-to-text-converter/