Как извлечь текст с помощью OCR из PDF в Linux?

Как извлечь текст из PDF, который не был создан с индексом? Это весь текст, но я не могу ничего найти или выбрать. Я запускаю Kubuntu, и у Okular нет этой функции.

У меня был успех с лицензированным BSD портом Linux системы Cuneiform OCR.

Кажется, что нет доступных бинарных пакетов, поэтому вам нужно построить их из источника. Убедитесь, что библиотеки ImageMagick C ++ установлены для поддержки практически любого формата входного изображения (в противном случае он будет принимать только BMP).

Хотя он, по-видимому, практически не документирован, кроме краткого файла README, я нашел результаты OCR вполне хорошими. Самое приятное в том, что он может выводить информацию о местоположении для текста OCR в формате hOCR , так что становится возможным вернуть текст в нужную позицию в скрытом слое PDF-файла. Таким образом, вы можете создавать «доступные для поиска» PDF-файлы, из которых вы можете копировать текст.

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

#!/bin/bash # Run OCR on a multi-page PDF file and create a new pdf with the # extracted text in hidden layer. Requires cuneiform, hocr2pdf, gs. # Usage: ./dwim.sh input.pdf output.pdf set -e input="$1" output="$2" tmpdir="$(mktemp -d)" # extract images of the pages (note: resolution hard-coded) gs -SDEVICE=tiffg4 -r300x300 -sOutputFile="$tmpdir/page-%04d.tiff" -dNOPAUSE -dBATCH -- "$input" # OCR each page individually and convert into PDF for page in "$tmpdir"/page-*.tiff do base="${page%.tiff}" cuneiform -f hocr -o "$base.html" "$page" hocr2pdf -i "$page" -o "$base.pdf" < "$base.html" done # combine the pages into one PDF gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="$output" "$tmpdir"/page-*.pdf rm -rf -- "$tmpdir" 

Обратите внимание, что вышеупомянутый скрипт очень рудиментарный. Например, он не сохраняет метаданные PDF.

Посмотрите, будет ли работать pdftotext для вас. Если это не на вашем компьютере, вам придется установить пакет poppler-utils

 sudo apt-get install poppler-utils 

Вы также можете найти pdf-файл для использования.

Полный список программного обеспечения для Windows здесь, в Википедии.

Изменить. Поскольку вам нужны возможности OCR, я думаю, вам придется попробовать другой подход. (Т. Е. Я не смог найти конвертер linux pdf2text, который выполняет OCR).

  • Преобразование PDF в изображение
  • Сканирование изображения на текст с помощью инструментов OCR

Конвертировать PDF в изображение

  • Gs: команда ниже должна преобразовывать многостраничный PDF в отдельные файлы tiff.

    Gs -SDEVICE = tiffg4 -r600x600 -sPAPERSIZE = letter -sOutputFile = filename_% 04d.tif -dNOPAUSE -dBATCH – имя_файла

  • Утилиты ImageMagik : на сайте SuperUser есть другие вопросы об использовании ImageMagik, которые вы можете использовать, чтобы помочь вам выполнить преобразование.

    Convert foo.pdf foo.png

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

  • GOCR : страница в Википедии
  • Ocrad : страница в Википедии
  • Ocropus : страница Википедии
  • Tesseract-ocr : страница в Википедии

Взято из списка программного обеспечения OCR в Википедии

Документы Google теперь будут использовать OCR для преобразования ваших загруженных изображений / PDF-документов в текст. У меня был хороший успех.

Они используют систему OCR, которая используется для гигантского проекта Google Books .

Однако следует отметить, что для обработки будут приняты только файлы PDF размером до 2 МБ.

Обновить
1. Чтобы попробовать, загрузите <2MB pdf в документы Google из веб-браузера.
2. Щелкните правой кнопкой мыши на загруженном документе и нажмите «Открыть с помощью Документов Google».
… Документы Google преобразуются в текст и выводятся в новый файл с тем же именем, но в Google Docs в той же папке.

Geza Kovacs сделал пакет Ubuntu, который в основном представляет собой скрипт, использующий hocr2pdf как предлагал Юкка, но делает вещи немного быстрее для настройки.

На форуме Geza's Ubuntu с подробностями о пакете …

Добавление репозитория и установка в Ubuntu

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

Запуск ocr в файле

 pdfocr -i input.pdf -o output.pdf 

Репозиторий GitHub для кода https://github.com/gkovacs/pdfocr/

PDFBeads хорошо работает для меня. Этот поток « Конвертировать отсканированные изображения в один файл PDF » запустил меня. Для сканирования книги b & w вам необходимо:

  1. Создайте изображение для каждой страницы PDF; Любой из приведенных выше примеров gs должен работать
  2. Генерировать вывод hOCR для каждой страницы; Я использовал tesseract (но заметьте, что Cuneiform, похоже, работает лучше).
  3. Переместите изображения и файлы hOCR в новую папку; Имена файлов должны соответствовать, поэтому file001.tif требует file001.html, file002.tif file002.html и т. Д.
  4. В новой папке запустите

     pdfbeads * > ../Output.pdf 

Это поместит сопоставленный, OCR'd PDF в родительский каталог.

Другой скрипт с использованием tesseract:

 #!/bin/bash # Run OCR on a multi-page PDF file and create a txt with the # extracted text in hidden layer. Requires tesseract, gs. # Usage: ./pdf2ocr.sh input.pdf output.txt set -e input="$1" output="$2" tmpdir="$(mktemp -d)" # extract images of the pages (note: resolution hard-coded) gs -SDEVICE=tiff24nc -r300x300 -sOutputFile="$tmpdir/page-%04d.tiff" -dNOPAUSE -dBATCH -- "$input" # OCR each page individually and convert into PDF for page in "$tmpdir"/page-*.tiff do base="${page%.tiff}" tesseract "$base.tiff" $base done # combine the pages into one txt cat "$tmpdir"/page-*.txt > $output rm -rf -- "$tmpdir" 

Библиотека Asprise OCR работает с большинством версий Linux. Он может принимать PDF-вход и вывод в качестве PDF-файла поиска.

Это коммерческий пакет. Загрузите бесплатную копию Asprise OCR SDK для Linux здесь и выполните ее следующим образом:

 aocr.sh input.pdf pdf 

Примечание: автономный «pdf» определяет формат вывода.

Отказ от ответственности: я сотрудник компании, производящей вышеуказанный продукт.

Попробуйте Apache PDFBox извлечь текстовый контент из PDF-файла. В случае, если изображения, встроенные в файлы PDF, используют ABBYY FineReader Engine CLI для Linux для извлечения текста.

  • Есть ли способ вызвать скрипт, когда Ubuntu просыпается из режима ожидания или спящего режима?
  • Восстановление EFI Windows 8 после установки Ubuntu EFI
  • Как определить текущий номер версии приложения с помощью apt-get
  • Как вернуть Windows 7 после установки Ubuntu (Linux)
  • Восстановить пул ZFS после создания над ним
  • Как я могу выйти из `sudo su`?
  • «Сгоревшие» пиксели на TFT-мониторе
  • Может ли gedit на mac использоваться для редактирования файлов по ssh?
  • Почему мой crontab не работает
  • Как сбросить права доступа к папкам по умолчанию в Ubuntu?
  • Внешние жесткие диски, поврежденные сектора, восстанавливают / маркируют утилиту в Linux
  • Давайте будем гением компьютера.