La ragione per cui pdftotext è stata senza successo potrebbe essere che i PDF sono immagini scansionate e che è necessario OCR, ho scritto un modo rapido per cercare tutti pdfi messaggi che non possono essere modificati grepe OCR.
Ho notato che se un pdffile non ha alcun carattere, di solito non è ricercabile. Sapendo questo possiamo usare pdffonts.
Le prime 2 righe di pdffontssono l'intestazione della tabella, quindi quando un file è ricercabile ha più di due righe di output, sapendo che possiamo creare:
gedit check_pdf_searchable.sh
incolla questo
#!/bin/bash
#set -vx
if ((`pdffonts "$1" | wc -l` < 3 )); then
echo $1
ocrmypdf "$1" "$1"_ocr.pdf
fi
quindi renderlo eseguibile
chmod +x check_pdf_searchable.sh
quindi elenca tutti i pdf non ricercabili nella directory:
ls -1 ./*.pdf | xargs -L1 -I {} ./check_pdf_searchable.sh {}
o nella directory e nelle sue sottodirectory:
tree -fai . | grep -P ".pdf$" | xargs -L1 -I {} ./check_pdf_searchable.sh {}
È inoltre necessario installare:
sudo apt install ocrmypdf