it-swarm.com.ru

Конвертировать PDF без возможности поиска в PDF с возможностью поиска в Windows Python

Требуется решение для преобразования файла PDF, в котором каждая страница является изображением, и страница может содержать текст, таблицу или их комбинацию в PDF-файл с возможностью поиска.

Я использовал ABBY FineReader Online, который отлично справляется со своей задачей, но я ищу решение, которое может быть достигнуто с помощью Windows Python

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

Сканированное изображение/PDF для поиска изображений/PDF

Он говорит использовать скрипт Ghost, чтобы сначала преобразовать его в изображение, а затем он напрямую преобразует его в текст. Я не верю, что tesseract преобразует не для поиска в PDF для поиска. 

Преобразование с возможностью поиска PDF в без возможности поиска PDF

Вышеупомянутое решение помогает в обратном, то есть преобразование поиска с поиском в без поиска. Также я думаю, что они действительны в Ubuntu/Linux/MacOS.

Может ли кто-нибудь помочь в объяснении того, каким должен быть код Python для достижения возможности поиска с возможностью поиска в Windows Python


ОБНОВЛЕНИЕ 1

Я получил желаемый результат с Asprise Web Ocr. Ниже ссылка и код:

https://asprise.com/royalty-free-library/python-ocr-api-overview.html

Я ищу решение, которое может быть сделано через библиотеки Windows Python только как

  1. Не нужно платить за подписку в будущем 
  2. Мне нужно ежедневно конвертировать тысячи документов, и будет неудобно загружать один в API, а затем загружать и так далее.

ОБНОВЛЕНИЕ 2

Я знаю решение для преобразования не для поиска PDF прямо в текст. Но я смотрю, есть ли у них какой-либо способ конвертировать PDF без возможности поиска. У меня есть код для преобразования PDF в текст с использованием PyPDF2.

14
Rahul Agarwal

Ну, на самом деле вам не нужно преобразовывать все внутри PDF в текст. Текст останется текстом, таблица останется таблицей, и, если возможно, изображение должно стать текстом Вам понадобится скрипт, который на самом деле читает PDF как есть, и начинает преобразование по блокам. Сценарий будет записывать блоки текста до тех пор, пока документ не будет полностью прочитан, а затем преобразует его в формат PDF. Что-то вроде

if line_is_text():
    write_the_line_as_is()
Elif line_is_img():
    transform_img_in_text()# comments below code
...
..
.

Теперь transform_img_in_text() Я думаю, что это можно сделать со многими внешними библиотеками, одну из которых вы можете использовать:

Тессеракт OCR Python

Вы можете скачать эту библиотеку с помощью pip, инструкции по ссылке выше.

5
Alexandru Martalogu

Если онлайн решение ocr приемлемо для вас, бесплатный API OCR от OCR.space также может создавать PDF-файлы с возможностью поиска и работает хорошо. 

В бесплатной версии созданный PDF содержит водяной знак. Чтобы удалить водяной знак, вам нужно перейти на свой коммерческий план PRO. Вы можете проверить API с помощью веб-формы на первой странице.

OCR.space также доступен как локальная опция без подписки, но я не уверен насчет цены. Лично я пользуюсь бесплатным ocr api с большим успехом.

4
Fabrice Zaks

Я использовал pypdfocr в прошлом, чтобы сделать это. Это не было обновлено в последнее время, хотя.

Из README:

pypdfocr filename.pdf
--> filename_ocr.pdf will be generated

Внимательно прочитайте инструкцию по установке для Windows.

Более поздняя библиотека Python - OCRmyPDF: https://github.com/jbarlow83/OCRmyPDF Существует образ Docker для Windows

4
iacolippo

Я недавно написал в блоге, где я сделал это, используя:

  • OCRmyPDF - оболочка библиотеки Python Tesseract
  • докер-контейнер работает в Azure

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

http://martyice.github.io/docker-in-Azure/

1
Marty