Powodem, dla którego pdftotext nie powiódł się, może być to, że PDF to zeskanowane obrazy i trzeba je OCR, napisałem szybki sposób na przeszukanie wszystkich pdf
, których nie można grep
edytować i OCR.
Zauważyłem, że jeśli pdf
plik nie ma żadnej czcionki, zwykle nie można go przeszukiwać. Wiedząc o tym, możemy skorzystać pdffonts
.
Pierwsze 2 wiersze pdffonts
nagłówka tabeli, więc gdy plik, który można przeszukiwać, ma więcej niż dwa wiersze, wiedząc, że możemy to utworzyć:
gedit check_pdf_searchable.sh
wklej to
#!/bin/bash
#set -vx
if ((`pdffonts "$1" | wc -l` < 3 )); then
echo $1
ocrmypdf "$1" "$1"_ocr.pdf
fi
następnie uczyń go wykonywalnym
chmod +x check_pdf_searchable.sh
następnie wypisz wszystkie nieprzeszukiwalne pliki pdf w katalogu:
ls -1 ./*.pdf | xargs -L1 -I {} ./check_pdf_searchable.sh {}
lub w katalogu i jego podkatalogach:
tree -fai . | grep -P ".pdf$" | xargs -L1 -I {} ./check_pdf_searchable.sh {}
Musisz także zainstalować:
sudo apt install ocrmypdf