Проблема перезаписи страниц при использовании pytesseract и PyPDF2Python

Программы на Python
Anonymous
Проблема перезаписи страниц при использовании pytesseract и PyPDF2

Сообщение Anonymous »



Изображение
У меня есть следующий код, цель которого — превратить отсканированные PDF-файлы в доступные для поиска (ctrl +F) файлы. Но по какой-то причине, которую я не могу понять, программа иногда (не всегда) смешивает страницы таким образом, что, например, выводит следующее: страница1, страница2, страница3, страница2, страница5... поэтому она снова записывает страницу2 на начало страницы 4.

Я пытался сделать код воспроизводимым.

import pytesseract, PyPDF2, io, os, tempfile из импорта pdf2image Convert_from_path из письма об импорте reportlab.lib.pagesizes из reportlab.pdfgen импорт холста # устанавливаем необходимые пути pdf_folder_path = 'U:/pdf_folder/' poppler_path = r'C:\poppler-24.02.0\Library\bin' pytesseract.pytesseract.tesseract_cmd = r'C:\Users\User\AppData\Local\Programs\Tesseract-OCR\tesseract.exe' # создаем пример PDF-файла c = холст.Canvas("output.pdf", размер страницы=буква) ширина, высота = буква c.setFont("Гельветика", 100) для меня в диапазоне (50): c.saveState() c.translate(ширина/2, высота/2) c.drawCentredString(0, 0, str(i + 1)) c.restoreState() c.showPage() c.save() # перечислить все PDF-файлы в папке (чтобы сделать их доступными для поиска) каталог = os.fsencode(pdf_folder_path) пути_файлов = [] для файла в os.listdir(каталог): имя файла = os.fsdecode(файл) если имя_файла.endswith('.pdf'): file_paths.append(имя файла) продолжать еще: продолжать print('Найдены файлы:') # конвертировать отсканированные файлы в формат с возможностью поиска для файла в file_paths: original_pdf = 'U:/Сделать PDF-файлы доступными для поиска/' + файл searchable_pdf = original_pdf[:-4] + '(доступен для поиска).pdf' print('В настоящее время работаем над: ' + original_pdf) с tempfile.TemporaryDirectory() в качестве пути: images = Convert_from_path(original_pdf, poppler_path=poppler_path, выходная_папка=путь) pdf_writer = PyPDF2.PdfWriter() для изображения в изображениях: страница = pytesseract.image_to_pdf_or_hocr(image, Extension='pdf', lang='eng') pdf = PyPDF2.PdfReader(io.BytesIO(страница)) pdf_writer.add_page(pdf.pages[0]) с open(searchable_pdf, "wb") как f: pdf_writer.write(ф) print(original_pdf + 'готово!') print('Процесс завершен.') Есть идеи, почему это происходит? Спасибо :)

Вернуться в «Python»