Это именно то, что я искал, у меня есть тысячи отсканированных PDF-файлов, где некоторые уже были распознаны, а некоторые нет.
Итак, я объединил информацию, которую нашел на форумах и переполнении стека, и создал собственное решение, которое ТОЧНО выполняет то, что я кратко изложил для вас здесь:
- просмотр всех подкаталогов рекурсивно для файлов PDF;
- отметьте , если PDF уже был распознан, и если нет, обработайте PDF с OCR с высоким качеством на языке, который вы можете указать;
- сохранить OCR PDF на месте в формате PDF / A и перезаписать старый (без OCR).
Я нахожусь на Windows 10, и не мог найти окончательный ответ. Я попытался сделать это с помощью Acrobat Pro, но это дало мне много ошибок, и пакетная обработка Acrobat останавливается на каждой ошибке или файле, защищенном паролем. Я также пробовал много других инструментов пакетного распознавания в Windows, но ни один из них не работал хорошо.
Я потратил бесчисленные часы, вручную проверяя, какие файлы уже имеют текстовый слой «под» изображением.
UNTIL! Microsoft объявила, что теперь стало очень легко запускать Linux под Windows, на той же машине, в той же файловой системе.
В Linux доступно гораздо больше инструментов и утилит, чем в Windows, поэтому я решил попробовать.
Итак, пошагово:
- Включить подсистему Windows для Linux на панели управления Windows; Есть много руководств. Погугли это. Это пара минут.
- Установка Linux из Магазина Windows. Откройте Магазин Windows, найдите Ubuntu и установите. Занимает около 5 минут.
- Теперь у вас есть «приложение Ubuntu». Запустить его. Он показывает вам linux bash и с доступом к файлам к вашим файлам Windows через / mnt / c . Это волшебство!
- Вам нужны некоторые "приложения" для Linux, а именно pdffonts и ocrmypdf ; которую вы можете установить с помощью команды sudo apt install pdffonts и sudo apt install ocrmypdf . Мы будем использовать эти приложения для проверки наличия встроенного шрифта в PDF, а если нет, для распознавания PDF. (см. примечание ниже).
- Установите очень маленький bash-скрипт (ниже) в ваш домашний каталог ~.
- Перейдите в (cd) каталог, в котором сохранены все ваши PDF-файлы. Например:
/mnt/c/Users/name/OneDrive/Documents
.
- Запустите команду:
find . -type f -name "*.pdf" -exec /your/homedir/pdf-ocr.sh '{}' \;
Готово!
Выполнение этого может, конечно, занять много времени, в зависимости от того, сколько у вас PDF и сколько из них еще не распознано.
Вот sh-скрипт. Вы должны сохранить его где-нибудь в вашей домашней папке, чтобы вам было легко звонить из любой точки мира. Вот так:
- тип
cd ~
. Это приведет вас к вашей домашней папке.
- тип
pico pdf-ocr.sh
. Это вызовет редактор. Вставьте приведенный ниже код скрипта. Затем нажмите Ctrl + X и нажмите Y. Ваш файл теперь сохранен.
- тип
sudo chmod +x pdf-ocr.sh
. Это даст сценарию разрешение на запуск.
MYFONTS=$(pdffonts -l 5 "$1" | tail -n +3 | cut -d' ' -f1 | sort | uniq)
if [ "$MYFONTS" = '' ] || [ "$MYFONTS" = '[none]' ]; then
echo "Not yet OCR'ed: $1 -------- Processing...."
echo " "
ocrmypdf -l eng+deu+nld -s "$1" "$1"
echo " "
else
echo "Already OCR'ed: $1"
echo " "
fi
Что это делает?
Ну, команда find
ищет все файлы PDF в текущем каталоге, включая подкаталоги. Затем он «отправляет» эти файлы в сценарий, в котором pdffonts
проверяет наличие встроенных шрифтов. Если это так, пропустите файл и попробуйте следующий. Если встроенные шрифты не найдены, используйте ocrmypdf
для распознавания текста.
Я обнаружил, что качество распознавания текста ocrmypdf ОЧЕНЬ хорошее, даже лучше, чем у Acrobat. Вы можете, конечно, настроить параметры. Например, я могу представить, что вы можете использовать другие языки для распознавания текста, кроме eng+deu+nld
. Вы можете посмотреть все варианты здесь: https://ocrmypdf.readthedocs.io/en/latest/
Примечание: Здесь я предполагаю, что , если файл PDF содержит нет встроенных шрифтов (так что в основном это изображение (сканирование) в PDF -file), что он имеет , а не OCR. Я знаю, что это не всегда может быть точным и / или правдивым, но для меня этого достаточно, чтобы определить, какие файлы следует передавать через OCR. Так что нет необходимости заново делать сотни или тысячи файлов PDF ....
Я знаю, что немного сложнее установить Linux под Windows, но это очень легко сделать, если у вас есть базовые навыки работы с Linux. Для меня это стоило усилий, потому что я теперь сделал пакетный процессор "одним щелчком", который работает. Я не смог найти решения для этого с помощью Windows-инструментов.
Я надеюсь, что кто-то найдет это и сочтет это полезным. Если у кого-то есть улучшения, пожалуйста, опубликуйте их здесь.
Спасибо.
Йос Джонкерен