Распознавание - OCR - PDF документа одним нажатием.

Опубликовано: 02 Ноябрь 2024
на канале: el guahiro
624
10

ПКМ Thunar, чтобы распознать сканированный файл PDF "на лету", добавив к нему текстовый слой. Для Xubuntu (Linux).
Thunar custom action to recognize scanned PDF file "on the fly".
Команда, для цветных сканов на руссом языке:
pdfsandwich -lang rus+eng -rgb -o %n %n | zenity --progress --width=400 --height=100 --title="Распознаю текст в файле PDF" --text работаю... --auto-close --pulsate ; notify-send "Закончено!"
Для работы ПКМ должны быть установлены дополнительные пакеты, команда, в терминале:
sudo apt install pdfsandwich zenity
Иногда pdfsandwich не устанавливается. Тогда из репозиториев Debian качаем пакет libicu52_52.1-8+deb8u8_amd64.deb и устанавливаем, зайдя терминалом в папку где расположен пакет: sudo dpkg -i libicu52_52.1-8+deb8u8_amd64.deb
Для Ubuntu 20, возможно версия пакета libicu52 может быть другая, посвежее.
Устанавливаем языковые пакеты:
sudo apt install tesseract-ocr-rus
и/или:
sudo apt install tesseract-ocr-ukr
или любой другой.
Хотя pdfsandwich есть в репозиториях Ubuntu, свежая версия pdfsandwich есть здесь https://sourceforge.net/projects/pdfs...
Для изучения функционала программы можно посетить страничку её автора http://www.tobias-elze.de/pdfsandwich/.
Если хотите, чтоб файл был полегче, уберите из команды -rgb : получится чёрно-белый вариант, жостко оптимизированный по весу файла.
Если хотите, чтоб файл был полегче, уберите из команды -rgb -o %n : вместе с исходным, в директории появится чёрно-белый вариант файла, жостко оптимизированный по весу, содержащий распознанный текст.
Если мы хотим, чтоб файл и в цветном варианте был такой же лёгкий, как в чёрно-белом, надо привести команду к виду:
pdfsandwich -lang rus+eng -rgb -o %n %n | zenity --progress --width=400 --height=100 --title="Распознаю текст в файле PDF" --text работаю... --auto-close --pulsate ; compress-pdf-standart.sh %n ; notify-send "Закончено!"
Содержание скрипта для уменьшения "веса" PDF файла, compress-pdf-standart.sh:
#! /bin/bash
IFS=$'\#'
for i in "$@" ; do ps2pdf -dUseFlateCompression=true -dOptimize=true -dProcessColorModel=/DeviceRGB -dDownsampleGrayImages=true -dAutoFilterColorImages=false -dDownsampleColorImages=true -dDownsampleMonoImages=true -dGrayImageDownsampleType=/Bicubic "$i" "$i"2 ; mv -v "$i"2 "$i";
done
скрипт закинуть куда-нибудь в $PATH (т.е. место, где лежат исполняемые файлы), например в ~/.local/bin/
Ах да, забыл, условия появления в ПКМ: Другие, Маска:*.pdf;*.PDF
Иконка:любая