Я пытаюсь найти способ справиться с отсканированными PDF-файлами на Python или PHP.Мне нужно иметь возможность открывать многостраничный PDF-файл, читать содержимое и перемещать страницы в отдельные PDF-файлы (или один файл, если они должны быть сгруппированы) на основе идентификатора в тексте.
Я скачал и немного поиграл с pdftotext , но не уверен, что это лучший способ.Я использовал образец отсканированного PDF, пропустил его через pdftotext в текстовый файл и немного обошел вокруг.Все работает нормально;Мне удалось найти некоторые идентификаторы, но для эффективности мне понадобится навык moar regex.Но я в восторге от разделения 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?Особенно это касается надежного распознавания текста, может ли он быть надежным?