La raison pour laquelle pdftotext n'a pas réussi est peut-être que les PDF sont des images numérisées et que vous devez les OCR, j'ai écrit un moyen rapide de rechercher tous les pdfs qui ne peuvent pas être grepédités et de les OCR.
J'ai remarqué que si un pdffichier n'a pas de police, il n'est généralement pas consultable. Sachant cela, nous pouvons l'utiliser pdffonts.
Les 2 premières lignes du pdffontssont l'en-tête du tableau, donc quand un fichier est consultable a plus de deux lignes de sortie, sachant cela, nous pouvons créer:
gedit check_pdf_searchable.sh
collez ceci
#!/bin/bash
#set -vx
if ((`pdffonts "$1" | wc -l` < 3 )); then
echo $1
ocrmypdf "$1" "$1"_ocr.pdf
fi
puis le rendre exécutable
chmod +x check_pdf_searchable.sh
puis répertoriez tous les fichiers PDF non consultables dans le répertoire:
ls -1 ./*.pdf | xargs -L1 -I {} ./check_pdf_searchable.sh {}
ou dans le répertoire et ses sous-répertoires:
tree -fai . | grep -P ".pdf$" | xargs -L1 -I {} ./check_pdf_searchable.sh {}
Vous devez également installer:
sudo apt install ocrmypdf