Ich habe viele PDF-Dateien in einem Ordner.
Ist es möglich, über die Befehlszeile zu überprüfen, ob eine oder mehrere Dateien beschädigt sind (keine Seiten oder unvollendete Downloads), ohne sie einzeln öffnen zu müssen?
Vielleicht gibt das Ausführen pdfinfo
(hier auf Fedora im poppler-utils
Paket) einen Hinweis?
Die meisten Informationen zu einer PDF-Datei befinden sich am Ende im Wörterbuch. Wenn es also gefunden wird, sollte es in Ordnung sein. Ich würde etwas machen wie:
for f in *.pdf; do
if pdfinfo "$f" > /dev/null; then
: Nothing
else
echo "$f" is broken
fi
done
pdfinfo
oderpdftotext
...Das ist mein Drehbuch
quelle
Mein bevorzugtes Werkzeug zum Überprüfen von PDFs ist
qpdf
.qpdf
hat ein--check
Argument, das sich gut dazu eignet, Probleme in PDFs zu finden.Überprüfen Sie ein einzelnes PDF mit
qpdf
:Überprüfen Sie alle PDFs in einem Verzeichnis mit
qpdf
:Befehlserklärung:
find ./directory_to_scan/ -type f -iname '*.pdf'
Finde alle Dateien mit der Endung '.pdf'-exec sh -c 'qpdf --check "{}" > /dev/null && echo "{}": OK' \;
Führen Sieqpdf
für jede gefundene Datei die entsprechende Anweisung aus und leiten Sie alle Ausgaben an/dev/null
. Gib auch den Dateinamen gefolgt von ': OK' aus, wenn der Rückgabestatusqpdf
0 ist (dh keine Fehler)-o -exec echo "{}": FAILED \; \)
Dies wird ausgeführt, wenn Fehler gefunden werden: Drucke Dateiname gefolgt von ": FAILED"Wo zu bekommen
qpdf
:qpdf
Die Linux- und Windows-Binärdateien sind 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 zum Beispiel qpdf mit dem Befehl apt installieren:quelle
qpdf --check
jedoch keine mehrfach definierten Metadaten erkannt, die nicht korrekt sind, da sie von verschiedenen Tools unterschiedlich gehandhabt werden. Ich habe einen Fehler gemeldet . Andere Tools wiepdfinfo
undpdftk
tun dies auch nicht, sie erheben jedoch keinen Anspruch darauf, die PDF-Struktur zu überprüfen.Ich habe mir eine antwort geholt:
Bei fehlerhaften PDFs werden Fehler angezeigt.
quelle
ls
: mywiki.wooledge.org/ParsingLsfind (1)
. :-)Alle Methoden mit
pdfinfo
oderpdftotext
haben bei mir nicht funktioniert. Tatsächlich gaben sie mir immer wieder Fehlalarme und erstellten manchmal Dateien, die ich nicht brauchte.Was funktionierte, war JHOVE .
Installation:
Installieren Sie die JAR-Datei über den obigen Link und aktualisieren Sie Ihre PATH-Umgebungsvariable mit dem folgenden Befehl:
Aktualisieren Sie jedes Terminal mit
source ~/.bash_profile
und Sie können es systemweit verwenden.Grundsätzliche Verwendung:
Sie werden eine Menge Informationen über das PDF erhalten - mehr als die meisten Leute wahrscheinlich brauchen.
Bash One-Liner:
Einfach zurücksenden
valid
oderinvalid
:Beachten Sie, dass dies unter Mac OS X ausgeführt wurde, aber ich gehe davon aus, dass es in jeder Unix-basierten Bash-Umgebung gleich funktioniert.
quelle