Как я извлекаю текст из PDF, который не был создан с индексом? Это - весь текст, но я не могу искать или выбрать что-либо. Я выполняю Kubuntu, и Okular не имеет этой функции.
Я имел успех с BSD-лицензированным портом Linux Клиновидной Системы оптического распознавания.
Никакие двоичные пакеты, кажется, не доступны, таким образом, необходимо создать его из источника. Обязательно имейте библиотеки C++ ImageMagick, установленные, чтобы иметь поддержку по существу любого входного формата изображения (иначе, это только примет BMP).
В то время как это, кажется, чрезвычайно не документировано кроме краткого файла README, я нашел результаты OCR довольно хорошими. Хорошая вещь об этом состоит в том, что это может произвести информацию о положении для текста OCR в hOCR формате, так, чтобы стало возможно отложить текст в в правильном положении в скрытом слое файла PDF. Таким образом, можно создать "доступный для поиска" PDFs, с которого можно скопировать текст.
Я использовал hocr2pdf для воссоздания PDFs из исходного PDFs только для изображения и результатов OCR. К сожалению, программа, кажется, не поддерживает создающий многостраничный PDFs, таким образом, Вам, возможно, придется создать сценарий для обработки их:
#!/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 использования.
Полный список программного обеспечения PDF здесь на Википедию.
Править: Так как Вам действительно нужны возможности OCR, я думаю, что необходимо будет попробовать другой гвоздь. (т.е. я не мог найти преобразователь linux pdf2text, который делает OCR).
Преобразуйте PDF для обработки изображений
gs: ниже команды должен преобразовать многостраничный PDF в отдельные файлы TIFF.
gs-SDEVICE=tiffg4-r600x600-sPAPERSIZE=letter-sOutputFile=filename _ % 04d.tif-dNOPAUSE-dBATCH - имя файла
Утилиты ImageMagik: существуют другие вопросы на сайте SuperUser об использовании ImageMagik, который Вы могли бы использовать, чтобы помочь Вам сделать преобразование.
преобразуйте foo.pdf foo.png
Преобразуйте изображение для отправки текстовых сообщений с OCR
Взятый из списка Википедии программного обеспечения OCR