Как распознать файл PDF и получить текст, хранящийся в PDF?

23

во-первых, извинения, если об этом уже спрашивали - я некоторое время искал по существующим сообщениям, но не смог найти поддержку.

Я заинтересован в решении для Fedora OCR многостраничного PDF без возможности поиска и превращения этого PDF-файла в новый PDF-файл, который содержит текстовый слой поверх изображения. На Mac OSX или Windows мы могли бы использовать Adobe Acrobat, но на Linux, особенно на Fedora?

https://snippets.webaware.com.au/howto/pdf-ocr-linux/, кажется, описывает решение - но, к сожалению, я уже потерялся при получении точного изображения.

Ingli
источник
Существует проблема с хорошим сценарием pdfocr, который рекомендует ссылка на страницу, на которую вы ссылаетесь: он основан на pdftk, который по существу устарел (по двум причинам - в зависимости от libgcj и iText5 +). Так что в любом случае нужно другое решение ...
Максим

Ответы:

24

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

pypdfocr your_document.pdf

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

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

sudo dnf -y install tesseract 
pip install pypdfocr 

Обновление 3 ноября 2018 года:

pypdfocrбольше не поддерживается с 2016 года, и я заметил некоторые проблемы из-за незанятости. ocrmypdf( модуль ) выполняет знакомую работу и может использоваться следующим образом:

ocrmypdf in.pdf out.pdf

Установить:

pip install ocrmypdf

или

sudo apt install ocrmypdf  #ubuntu
sudo dnf -y install ocrmypdf #fedora
Эдуард Флоринеску
источник
почему вы устанавливаете (используя apt) ocrmypdf в ubuntu, но устанавливаете tessaract в fedora? Я думаю, что вы сделали опечатку
iuridiniz
@iuridiniz это исправил. Это была ошибка, которая просочилась
Эдуард Флоринеску
8

Узнав, что tesseract теперь также может создавать PDF-файлы с возможностью поиска, я нашел сэндвич со сценарием: http://www.tobias-elze.de/pdfsandwich/

после установки зависимостей (это может быть не полный список)

sudo dnf install svn ocaml unpaper tesseract

Я следовал руководству сценария по компиляции из исходного кода

Компилировать из источников

pdfsandwich - программное обеспечение с открытым исходным кодом (лицензия GPL). Вы можете скачать исходники либо в виде пакета .tar.bz2 из области загрузки на веб-сайте проекта, либо проверить их с помощью subversion:

svn checkout svn://svn.code.sf.net/p/pdfsandwich/code/trunk/src pdfsandwich

Если в вашей системе установлен OCaml, вы можете скомпилировать и установить его следующим образом:

cd pdfsandwich
./configure
make
sudo make install

и теперь это позволяет мне бежать

sandwich multipaged-non-searchable.pdf

в результате чего для поиска PDF.

Ingli
источник
связанный, но отдельный вопрос, основанный
ingli
1
FWIW: pdfsandwich также доступен в репозитории пакетов abu Ubuntu. Другие дистрибутивы могут иметь это также.
Лоуренс Гонсалвес
unix.stackexchange.com/questions/471985/… любые предложения
Дипак Умредкар
Только что наткнулся на fedoramagazine.org/4-cool-new-projects-try-copr-o.10-2018, показывающий пакет COPR для fedora, который упаковывает pdfsandwich
ingli
3

Простой инструмент, доступный в Ubuntu, - «ocrfeeder», он позволяет создавать PDF-файлы с текстом OCR, наложенным на исходные документы. Он использует Tesseract и другие механизмы распознавания (не знаю, какой именно), а также обеспечивает поворот изображения / «без бумаги» и т. Д.

jdpipe
источник
1

У меня была такая же проблема, поэтому я написал это на выходных. Дать ему шанс; это прекрасно работает! Это простая обертка вокруг tesseract. Он использует pdftoppmдля преобразования PDF в набор файлов TIFF, затем он использует tesseractдля их распознавания (OCR) и создает PDF-файл с возможностью поиска в качестве вывода. Все промежуточные временные файлы автоматически удаляются по завершении сценария.

Исходный код: https://github.com/ElectricRCAircraftGuy/PDF2SearchablePDF

Инструкция по установке и использованию pdf2searchablepdf:

Проверено на Ubuntu 18.04 11 ноября 2019 года.

Установка:

git clone https://github.com/ElectricRCAircraftGuy/PDF2SearchablePDF.git
./PDF2SearchablePDF/install.sh

sudo apt update
sudo apt install tesseract-ocr

Использование:

pdf2searchablepdf mypdf.pdf

Теперь у вас есть PDF-файл с именем mypdf_searchable.pdf , который содержит текст с возможностью поиска!

Выполнено. У него нет зависимостей Python, так как в настоящее время он полностью написан на bash.

Ссылки или связанные ресурсы:

  1. PDF2SearchablePDF : https://github.com/ElectricRCAircraftGuy/PDF2SearchablePDF
  2. /ubuntu/473843/how-to-turn-a-pdf-into-a-text-searchable-pdf/1187881#1187881
  3. /ubuntu/16268/whats-the-best-simplest-ocr-solution
  4. /ubuntu/150100/extracting-embedded-images-from-a-pdf/1187844#1187844
  5. pdfsandwich : Альтернативная программная оболочка, которую я только что обнаружил, это тоже стоит проверить! http://www.tobias-elze.de/pdfsandwich/
Габриэль Стейплс
источник