Anda dapat mencoba melakukannya dengan pdfinfo (di sini di Fedora di poppler-utils kemasan). pdfinfo mendapatkan informasi tentang file PDF dari kamusnya, jadi jika ditemukan, file tersebut akan baik-baik saja
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
Alat pilihan saya untuk memeriksa PDF adalah qpdf . qpdf memiliki --check argumen yang cocok untuk menemukan masalah dalam PDF.
Periksa satu PDF dengan qpdf :
qpdf --check test_file.pdf
Periksa semua PDF dalam direktori dengan qpdf :
find ./directory_to_scan/ -type f -iname '*.pdf' \( -exec sh -c 'qpdf --check "{}" > /dev/null && echo "{}": OK' \; -o -exec echo "{}": FAILED \; \)
Penjelasan Perintah:
-
find ./directory_to_scan/ -type f -iname '*.pdf'Temukan semua file dengan ekstensi '.pdf' -
-exec sh -c 'qpdf --check "{}" > /dev/null && echo "{}": OK' \;Jalankanqpdfuntuk setiap file yang ditemukan dan kirimkan semua output ke/dev/null. Cetak juga nama file diikuti dengan ':OK' jika mengembalikan statusqpdfadalah 0 (artinya tidak ada kesalahan) -
-o -exec echo "{}": FAILED \; \)Ini dijalankan jika kesalahan ditemukan:Cetak nama file diikuti dengan ":FAILED"
Di mana mendapatkan qpdf :
qpdf memiliki binari Linux dan Windows yang tersedia di:https://github.com/qpdf/qpdf/releases. Anda juga bisa menggunakan manajer paket pilihan Anda untuk mendapatkannya. Misalnya di Ubuntu Anda dapat menginstal qpdf menggunakan apt dengan perintah:
apt install qpdf