Манипулировать файлами PDF (читать, разбивать, объединять, перемещать) - PullRequest
1 голос
/ 09 марта 2011

Я пытаюсь найти способ справиться с отсканированными PDF-файлами на Python или PHP.Мне нужно иметь возможность открывать многостраничный PDF-файл, читать содержимое и перемещать страницы в отдельные PDF-файлы (или один файл, если они должны быть сгруппированы) на основе идентификатора в тексте.

Я скачал и немного поиграл с pdftotext , но не уверен, что это лучший способ.Я использовал образец отсканированного PDF, пропустил его через pdftotext в текстовый файл и немного обошел вокруг.Все работает нормально;Мне удалось найти некоторые идентификаторы, но для эффективности мне понадобится навык moar regex.Но я в восторге от разделения PDF-файлов и их перемещения на основе pdftotext.

Есть идеи?


Редактировать: уточнение.

  1. Использовать pdftotextвыкладывать каждую страницу pdf в отдельные txt-файлы;
  2. grep txt-файлов для идентификаторов и составлять список похожих страниц;
  3. на основе извлечения и объединения списка (еслиприменимо) связанные страницы и выкладывают pdf каждой из них;
  4. переместить сгенерированный 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?Особенно это касается надежного распознавания текста, может ли он быть надежным?

Ответы [ 2 ]

2 голосов
/ 09 марта 2011

Вы пробовали PyPdf? Смотри: http://pybrary.net/pyPdf/

А вот рецепт, использующий PyPdf для извлечения текста: http://code.activestate.com/recipes/511465-pure-python-pdf-to-text-converter/

2 голосов
/ 09 марта 2011

Я успешно использовал pypdf для небольших проектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...