1

Предположим, у вас есть 2 "отсканированных" файла PDF.

  1. Большой, но без текстового слоя.
  2. Меньше (с изображениями низкого качества), но с правильным текстовым слоем.

Оба файла содержат одинаковые изображения, отличающиеся только сжатием.

Цель состоит в том, чтобы встроить тот же текстовый слой в 1-й PDF.

«Просто OCR 1-й файл» не является решением. Я знаю, что Acrobat (и некоторые другие инструменты) способны распознавать текст без изменения слоя изображения, но я не доволен их качеством распознавания.

Итак, я вижу два возможных пути:

  1. Экспорт-импорт текстового слоя как-то
  2. Заменить изображения в слое изображения как-то.

Что касается 1-го пути, я ничего не нашел. Что касается второго способа, я нашел два инструмента, которые довольно близки к hocr2pdf и pdf2text, но, насколько я понял, их все еще недостаточно. :(

PS: используйте пример:

Я только что нашел другой пример, где такая операция полезна систематическим образом.

Если вы отсканировали pdf-1 (без текстового слоя) с, скажем, сжатием изображения "jpg", Abbyy finereader предоставит вам OCR'd pdf, pdf-2. Он будет либо достаточно большим, если вы выберете сжатие без потерь, либо качество изображения будет значительно ниже, чем у pdf-1. Во многих случаях лучший выбор - сохранить сжатие исходного изображения как есть и не пережимать изображение.

2 ответа2

2

Этот ответ на stackoverflow имеет решение. Вы можете извлечь текст с координатами из вашего pdf-2, используя pdftotext -bbox или пакет Python PDFMiner, затем записать этот скрытый текст в новый PDF с пакетом Python ReportLab, а затем объединить этот скрытый текст PDF с вашим pdf-1, используя PDFtk (на веб-странице есть графический интерфейс для Windows; командная строка для Unix теперь называется PDFtk Server.)

Или вы можете попробовать напрямую объединить pdf-1 и pdf-2, используя PDFtk. Запустите pdftk pdf-2 multistamp pdf-1 output out.pdf . Это поместит каждую страницу pdf-1 перед соответствующей страницей pdf-2, так что вы увидите только изображения из pdf-1 (при условии, что они сканированы и не имеют прозрачного фона), но скрытый текст из pdf-2 будет включен. Недостатком является то, что это может быть очень большим, поскольку он будет включать две копии каждого изображения страницы. Я проверил, что это работает, и размер выходного файла PDF является суммой размеров входных данных.

0

Если это единичный случай, когда вам нужно это сделать, LibreOffice + GIMP должен выполнить эту работу. Во-первых, используйте LibreOffice Draw для извлечения высококачественных сканов. Затем отредактируйте их с помощью GIMP, чтобы удалить отсканированный текст. Наконец, добавьте изображение в файл OCRed на нижнем уровне.

Но если вы собираетесь сделать это как часть какой-то рутины, то у вас, вероятно, есть проблема с вашим рабочим процессом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .