Как преобразовать отсканированный PDF в PDF с текстом

Я отсканировал около 80 страниц в оттенки серого PDF (формат изображения). Конечный размер файла составляет около 70 МБ, что очень много.

Сейчас я ищу способ преобразования PDF-файла на основе изображений в градациях серого в простой PDF-файл на основе черно-белого текста.

Я сделал много попыток с gs но безуспешно (восстановление только на несколько процентов). Если у какого-либо эксперта есть идея, пожалуйста, дайте мне знать.

9 ответов

Решение

gImageReader - это простой интерфейс GTK+ для tesseract-ocr,

sudo apt-get install gimagereader tesseract-ocr

извините за немецкий текст

Вы можете попробовать pdfocr:

 sudo add-apt-repository ppa:gezakovacs/pdfocr
 sudo apt-get update
 sudo apt-get install pdfocr

Выполнить синтаксис

 pdfocr -i input.pdf -o output.pdf

где input.pdf это имя входного файла и output.pdf выходной файл.

По умолчанию используется Tesseract. Чтобы установить это:

 sudo apt-get install tesseract-ocr

pdfocr создает встроенный текстовый слой.

Взгляните на OCRmyPDF, который хорошо работает.

pdfsandwich

Он загружает тессеракт и другие при установке. Простое решение за один шаг и может быть написано в сценарии. Можно использовать hocr2pdf создать простой текстовый PDF, но он не готов к прайм-тайм... пока. По умолчанию используется tesseract и создается "зажатый" pdf: изображение + текст внизу.

Встроенное изображение может быть удалено с помощью таких команд:

gs -o ocr_noIMG.pdf -sDEVICE = pdfwrite -dFILTERIMAGE ocr_image.pdf

но текст скрыт, поэтому он выглядит как пустая страница.

Загрузка PDF в LibreOffice Draw выставляет текст и изображение может быть удалено вручную.

Вы можете попробовать shrinkpdf, чтобы уменьшить размер файла, а затем ocr.sh, чтобы добавить текстовый слой.

Я столкнулся с этим вопросом, пытаясь преобразовать отсканированный PDF-файл в PDF-файл с возможностью выбора текста. Позже я нашел pdfsandwich , с которым у меня были очень хорошие результаты, и я удивлен, что он до сих пор не упоминается подробно в ответах.

Более подробная информация доступна здесь: http://www.tobias-elze.de/pdfsandwich/

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

По состоянию на декабрь 2020 года он включен в официальные репозитории Ubuntu. Установить:

      sudo apt update && sudo apt install pdfsandwich

Чтобы обработать PDF-файл с именем input.pdf:

      pdfsandwich input.pdf

По умолчанию ваш вывод будет выглядеть как input_ocr.pdf.

В Ubuntu 20.04 он изначально не работал из-за проблемы с разрешениями Ghostscript. Это можно обойти, добавив XML-комментарии ( <!-- xxx -->) вокруг следующих строк в /etc/ImageMagick-6/policy.xml (в моем файле это были строки 90–95):

        <policy domain="coder" rights="none" pattern="PS" />
  <policy domain="coder" rights="none" pattern="PS2" />
  <policy domain="coder" rights="none" pattern="PS3" />
  <policy domain="coder" rights="none" pattern="EPS" />
  <policy domain="coder" rights="none" pattern="PDF" />
  <policy domain="coder" rights="none" pattern="XPS" />

Ссылка на это исправление: https://www.itechlounge.net/2020/09/web-imagickexception-attempt-to-perform-an-operation-not-allowed-by-the-security-policy-pdf/

Чтобы прочитать документацию:

      man pdfsandwich

Для графического интерфейса, предложенного @AB на Ubuntu 14.04, вы должны следовать:

ocr тессеракт на убунту 14.04

или в любом случае, добавьте в список хранилища:

sudo add-apt-repository ppa:sandromani/gimagereader
sudo apt-get update

до этого работает:

sudo apt-get install gimagereader

На самом деле лучшее, что я нашел, это команда pdftotext

sudo apt install poppler-utils

довольно гладко и просто, если вы это сделаете pdftotext -layout xxx.pdfвы даже получаете исходный макет, сохраненный в виде текста.

В вашем файле PDF щелкните правой кнопкой мыши и сохраните каждую страницу в виде изображения (или найдите инструмент, который выполняет все страницы автоматически)

Откройте программный центр Ubuntu. Ищите тессеракт. Это найдет YAGF, который вы должны установить. В YAGF щелкните Файл -> Открыть изображение и загрузите изображение. Затем нажмите Файл -> Распознать.

У меня была 100% точность в моем первом тесте.

Другие вопросы по тегам