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 pdf
i messaggi che non possono essere modificati grep
e OCR.
Ho notato che se un pdf
file non ha alcun carattere, di solito non è ricercabile. Sapendo questo possiamo usare pdffonts
.
Le prime 2 righe di pdffonts
sono 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