Můžete to zkusit udělat pomocí pdfinfo (zde na Fedoře v poppler-utils balík). pdfinfo získá informace o souboru PDF ze svého slovníku, takže pokud jej najde, soubor by měl být v pořádku
for f in *.pdf; do
if ! pdfinfo "$f" &> /dev/null; then
echo "$f" is broken
fi
done
find . -iname '*.pdf' | while read -r f
do
if pdftotext "$f" - &> /dev/null; then
echo "$f" was ok;
else
mv "$f" "$f.broken";
echo "$f" is broken;
fi;
done
Můj nástroj pro kontrolu souborů PDF je qpdf . qpdf má --check argument, který dobře najde problémy v PDF.
Zkontrolujte jeden soubor PDF s qpdf :
qpdf --check test_file.pdf
Zkontrolujte všechny soubory PDF v adresáři pomocí qpdf :
find ./directory_to_scan/ -type f -iname '*.pdf' \( -exec sh -c 'qpdf --check "{}" > /dev/null && echo "{}": OK' \; -o -exec echo "{}": FAILED \; \)
Vysvětlení příkazu:
-
find ./directory_to_scan/ -type f -iname '*.pdf'Najít všechny soubory s příponou '.pdf' -
-exec sh -c 'qpdf --check "{}" > /dev/null && echo "{}": OK' \;Spusťteqpdfpro každý nalezený soubor a přenést veškerý výstup na/dev/null. Vypište také název souboru následovaný ':OK', pokud je návratový stavqpdfje 0 (tj. žádné chyby) -
-o -exec echo "{}": FAILED \; \)To se provede, pokud jsou nalezeny chyby:Tisk názvu souboru následovaný ":FAILED"
Kde získat qpdf :
qpdf má binární soubory pro Linux i Windows dostupné na:https://github.com/qpdf/qpdf/releases. K jeho získání můžete také použít svého správce balíčků. Například na Ubuntu můžete nainstalovat qpdf pomocí apt s příkazem:
apt install qpdf