Я попытался добавить текстовый слой к некоторым файлам PDF, чтобы сделать их доступными для поиска. Этот метод объясняется в немецкой вики Ubuntu: http://wiki.ubuntuusers.de/pdfsandwich . После установки зависимостей
sudo apt-get install imagemagick exactimage ghostscript tesseract-ocr
и pdfsandwich
он должен быть таким же простым, как
pdfsandwich test.pdf
Однако я получаю:
Input file: "test.pdf"
Output file: "test_ocr.pdf"
Number of pages in inputfile: 272
Parallel processing with 8 threads started.
Processing page order may differ from original page order.
Processing page 137.
Processing page 171.
Processing page 1.
PProcessing page Processing pProcessing page rocess35.
age 239.
Processing page 69.
205.
ing page 103.
sh: 1: cannot open /tmp/pdfsandwich4e375e.html: No such file
, за которым следуют многие другие не удается открыть ...
предупреждения. Проверка моего каталога / tmp
показывает, что вместо этих файлов * .html
существуют соответствующие файлы * .txt
. Похоже, тессеракт не выводит в формате hocr. Я прочитал справочные страницы tesseract и попытался обеспечить вывод hocr, создав файл конфигурации с именем tesseract-config
hocr true
(я пробовал различные его варианты) и запустив pdfsandwich с помощью
pdfsandwich -tesso tesseract-config test.pdf
. Но это, похоже, ничего не меняет.Есть идеи, как заставить pdfsandwich производить правильный вывод?
Обратите внимание на связанные вопросы Как добавить текст с оптическим распознаванием текста в исходный PDF-файл в gscan2pdf? и Добавление информации оптического распознавания текста в PDF . Однако мне нужно обработать много файлов PDF, поэтому мне нужно решение командной строки, которое я могу автоматизировать.
Причиной этой ошибки является то, что tesseract изменил свои стандартные расширения файлов для hocr, сделав его несовместимым с pdfsandwich < 0.1.0. Для tesseract 3.02 с pdfsandwich < 0.1.0 это помогает изменить файл опций tesseract и передать его в pdfsandwich с -tesso.
Tesseract 3.03, являющаяся версией tesseract по умолчанию в Ubuntu 14.04, существенно изменила свою обработку hocr, сделав ее частично несовместимой с hocr2pdf, так что исправление «-tesso» часто приводит к тому, что текстовые слои не соответствуют сканируемому. изображений. Вместо этого нужно использовать не hocr2pdf, а сам tesseract для создания каждой отдельной страницы PDF-файлов.
Pdfsandwich> = 0.1.0 автоматически распознает версию тессеракта и выбирает подходящий способ взаимодействия с тессерактом, чтобы все эти ошибки больше не возникали.
Оказалось, что формат файла конфигурации изменился с текущей версией Tesseract для Ubuntu (3.02.01): http://code.google.com/p/tesseract-ocr/source/browse/ trunk / tessdata / configs / hocr? r = 526 . Теперь Tesseract может быть задан вывод в формате hocr с помощью однострочного файла конфигурации tesseract-config
:
tessedit_create_hocr 1
Как отмечалось в вопросе, tesseract может быть дано указание прочитать файл конфигурации, передав -tesso
опция для pdfsandwich
:
pdfsandwich -tesso tesseract-config test.pdf