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 Sieqpdfaus für jede gefundene Datei und leiten Sie die gesamte Ausgabe an/dev/nullweiter . Gibt auch den Dateinamen gefolgt von ':OK' aus, wenn der Rückgabestatusqpdfist 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