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ťteqpdf
pro 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ý stavqpdf
je 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