Vous pouvez essayer de le faire avec pdfinfo
(ici sur Fedora dans le poppler-utils
forfait). pdfinfo
obtient des informations sur le fichier PDF à partir de son dictionnaire, donc s'il le trouve, le fichier devrait être correct
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
Mon outil de choix pour vérifier les PDF est qpdf
. qpdf
a un --check
argument qui fait bien pour trouver des problèmes dans les PDF.
Vérifier un seul PDF avec qpdf
:
qpdf --check test_file.pdf
Vérifier tous les PDF d'un répertoire avec qpdf
:
find ./directory_to_scan/ -type f -iname '*.pdf' \( -exec sh -c 'qpdf --check "{}" > /dev/null && echo "{}": OK' \; -o -exec echo "{}": FAILED \; \)
Explication de la commande :
-
find ./directory_to_scan/ -type f -iname '*.pdf'
Trouver tous les fichiers avec l'extension '.pdf' -
-exec sh -c 'qpdf --check "{}" > /dev/null && echo "{}": OK' \;
Exécutezqpdf
pour chaque fichier trouvé et dirigez toutes les sorties vers/dev/null
. Imprime également le nom du fichier suivi de ' :OK' si le statut de retour estqpdf
est 0 (c'est-à-dire qu'il n'y a pas d'erreurs) -
-o -exec echo "{}": FAILED \; \)
Ceci est exécuté si des erreurs sont trouvées :Imprimez le nom du fichier suivi de " :FAILED"
Où obtenir qpdf
:
qpdf
a des binaires Linux et Windows disponibles sur :https://github.com/qpdf/qpdf/releases. Vous pouvez également utiliser le gestionnaire de packages de votre choix pour l'obtenir. Par exemple sur Ubuntu vous pouvez installer qpdf en utilisant apt avec la commande :
apt install qpdf