Sie können es mit pdfinfo
versuchen (hier auf Fedora in der poppler-utils
Paket). pdfinfo
erhält Informationen über die PDF-Datei aus seinem Wörterbuch, wenn es sie also findet, sollte die Datei in Ordnung sein
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
Mein bevorzugtes Tool zum Überprüfen von PDFs ist qpdf
. qpdf
hat einen --check
Argument, das sich gut eignet, um Probleme in PDFs zu finden.
Prüfen Sie ein einzelnes PDF mit qpdf
:
qpdf --check test_file.pdf
Prüfen Sie alle PDFs in einem Verzeichnis mit qpdf
:
find ./directory_to_scan/ -type f -iname '*.pdf' \( -exec sh -c 'qpdf --check "{}" > /dev/null && echo "{}": OK' \; -o -exec echo "{}": FAILED \; \)
Befehlserklärung:
-
find ./directory_to_scan/ -type f -iname '*.pdf'
Finden Sie alle Dateien mit der Erweiterung „.pdf“ -
-exec sh -c 'qpdf --check "{}" > /dev/null && echo "{}": OK' \;
Führen Sieqpdf
aus für jede gefundene Datei und leiten Sie die gesamte Ausgabe an/dev/null
weiter . Gibt auch den Dateinamen gefolgt von ':OK' aus, wenn der Rückgabestatusqpdf
ist ist 0 (d. h. keine Fehler) -
-o -exec echo "{}": FAILED \; \)
Dies wird ausgeführt, wenn Fehler gefunden werden:Dateiname drucken, gefolgt von ":FAILED"
Wo bekommt man qpdf
:
qpdf
hat sowohl Linux- als auch Windows-Binärdateien verfügbar unter:https://github.com/qpdf/qpdf/releases. Sie können auch den Paketmanager Ihrer Wahl verwenden, um es zu erhalten. Unter Ubuntu können Sie beispielsweise qpdf mit apt mit dem Befehl installieren:
apt install qpdf