Причина, по которой pdftotext не увенчался успехом, может заключаться в том, что PDF-файлы являются отсканированными изображениями, и вам необходимо распознать их, я написал быстрый способ поиска всех pdf
объектов, которые нельзя grep
отредактировать, и распознавания их.
Я заметил, что если pdf
файл не имеет какого-либо шрифта, он обычно не доступен для поиска. Зная это, мы можем использовать pdffonts
.
Первые 2 строки pdffonts
- это заголовок таблицы, поэтому, когда файл доступен для поиска, выводится более двух строк, зная это, мы можем создать:
gedit check_pdf_searchable.sh
вставьте это
#!/bin/bash
#set -vx
if ((`pdffonts "$1" | wc -l` < 3 )); then
echo $1
ocrmypdf "$1" "$1"_ocr.pdf
fi
затем сделайте его исполняемым
chmod +x check_pdf_searchable.sh
затем перечислите все не доступные для поиска PDF-файлы в каталоге:
ls -1 ./*.pdf | xargs -L1 -I {} ./check_pdf_searchable.sh {}
или в каталоге и его подкаталогах:
tree -fai . | grep -P ".pdf$" | xargs -L1 -I {} ./check_pdf_searchable.sh {}
Вам также необходимо установить:
sudo apt install ocrmypdf