Создание PDF-файлов с возможностью копирования и вставки из отсканированных изображений

У меня есть файлы PDF, которые создаются со сканера. PDF-файлы содержат только изображения.

До сих пор вы не могли копировать и вставлять текст, если вы просматриваете PDF-файл с помощью Acrobat или другого средства просмотра PDF-файлов.

Необходимые функции:

  • OCR: читать текст с изображений
  • Добавьте примечания к PDF и создайте скрытое наложение, чтобы текст можно было копировать и вставлять.
  • Обработка одной страницы не должна длиться более 20 секунд
  • Командная строка и/или API, графический интерфейс не требуется

Необязательный:

  • Если есть API, привязки Python были бы хороши

Мне нужно только поддерживать Linux, никакой другой операционной системы. Предпочтителен открытый исходный код, но рекомендации по коммерческому программному обеспечению также являются правильным ответом.

Ответы (4)

Решение, которое вы хотите, можно найти на нашем дочернем сайте: как распознать pdf-файл и получить текст, сохраненный в pdf? Цитируя этот ответ :

Лучший и самый простой способ - использовать pypdfocrего, не меняя PDF. pypdfocr — это ссылка на модуль Python здесь.

pypdfocr your_document.pdf

В конце у вас будет другой your_document_ocr.pdf, как вы хотите, с доступным для поиска текстом. Приложение не изменяет качество изображения. Немного увеличивает размер файла, добавляя текст наложения.

Я думаю, что команда довольно проста, так как ей не нужен графический интерфейс. Возможно, установка pypdfocr немного более подробная:

sudo dnf -y install tesseract 
pip install pypdfocr 

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

  • ОКР: Да.
  • открытый исходный код: Да.
  • командная строка, графический интерфейс не требуется: Да.
  • Поддержка Linux: Да.
  • Привязки Python: Ну, это обычный Python (за исключением вызова Tesseract).

В качестве альтернативы, работающего таким же образом, есть еще один модуль Python, который называется ocrmypdf . Это также использует Tesseract для процесса OCR.

Третьим кандидатом может быть pdfsandwich , но он поставляется без компонента Python.

Я лично использую Adobe Creative Cloud — все приложения
https://www.adobe.com/creativecloud/plans.html

  • Ежемесячная подписка - отменить в любое время.

  • OCR — качество зависит от количества точек на дюйм при сканировании. Читаемость и качество отсканированного элемента.

  • Вставляемый текст - да.

  • Редактируемый исходный текст - да.

  • Обозначение - Да

К сожалению, не могу ответить на следующее:

  • Командная строка и/или API.

Из моего исследования Adobe будет работать на Linux.

Взгляните на Tesseract , программное обеспечение OCR с открытым исходным кодом.

Он поставляется с программой командной строки, а также с привязками Python. Пакеты, доступные в вашем дистрибутиве Linux.

apt-get install tesseract-ocr
#convert pdf to scans.tiff
tesseract scans.tiff out pdf
  • ✓ Оптическое распознавание символов
  • ✓ вывод в формате PDF с возможностью поиска
  • ✓ с открытым исходным кодом
  • ✓ достаточно быстро (хотя v3 быстрее, чем v4)
  • ✓ командная строка и/или API
  • ✓ работает на Linux
  • ✓ привязки питона
К сожалению, tesseract не может взять PDF-файл (содержащий, например, 5 отсканированных страниц) и вывести PDF-файл со скрытыми текстовыми аннотациями. По крайней мере, я не мог найти способ сделать это.
Я думаю, что недостающий шаг заключается в том, что вам нужно сначала преобразовать файл PDF в многостраничное изображение TIFF, которое затем передается в качестве входных данных для tesseract.

Этот инструмент на основе Python3 имеет все функции: https://pypi.org/project/ocrmypdf/

  • Распознавание: да
  • Аннотируйте PDF-файл и создайте скрытое наложение, чтобы текст можно было копировать и вставлять: да
  • Обработка одной страницы не должна длиться более 20 секунд: да
  • Командная строка и/или API, графический интерфейс не требуется: да
  • Если есть API, привязки Python были бы кстати: да