Saya memiliki banyak file PDF pada satu folder.
Apakah mungkin memeriksa apakah satu atau lebih file rusak (nol halaman, atau unduhan yang belum selesai) menggunakan baris perintah, tanpa perlu membukanya satu per satu?
Mungkin berjalan pdfinfo
(di sini di Fedora dalam poppler-utils
paket) memberikan petunjuk?
Sebagian besar informasi pada file PDF ada di kamus pada akhirnya, jadi jika ditemukan itu harus OK. Saya akan melakukan sesuatu seperti:
for f in *.pdf; do
if pdfinfo "$f" > /dev/null; then
: Nothing
else
echo "$f" is broken
fi
done
pdfinfo
ataupdftotext
...Ini skrip saya
sumber
Alat pilihan saya untuk memeriksa PDF adalah
qpdf
.qpdf
memiliki--check
argumen yang berfungsi baik untuk menemukan masalah dalam PDF.Periksa satu PDF dengan
qpdf
:Periksa semua PDF dalam direktori dengan
qpdf
: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' \;
Jalankanqpdf
untuk setiap file yang ditemukan dan pipa semua output/dev/null
. Juga cetak nama file diikuti oleh ': OK' jika status pengembalianqpdf
adalah 0 (yaitu tidak ada kesalahan)-o -exec echo "{}": FAILED \; \)
Ini dijalankan jika ditemukan kesalahan: Cetak nama file diikuti oleh ": GAGAL"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. Sebagai contoh di Ubuntu Anda dapat menginstal qpdf menggunakan apt dengan perintah:sumber
qpdf --check
tidak mendeteksi metadata yang didefinisikan multipel, yang tidak benar karena mereka ditangani secara berbeda oleh alat yang berbeda. Saya telah melaporkan bug . Alat lain sepertipdfinfo
danpdftk
juga tidak, tetapi mereka tidak mengklaim untuk memeriksa struktur PDF.Saya sendiri mendapat jawaban:
PDF dengan kesalahan akan menunjukkan kesalahan.
sumber
ls
: mywiki.wooledge.org/ParsingLsfind (1)
. :-)Semua metode menggunakan
pdfinfo
ataupdftotext
belum berfungsi untuk saya. Bahkan mereka terus memberi saya positif palsu dan terkadang membuat file yang tidak saya butuhkan.Apa yang berhasil adalah JHOVE .
Instalasi:
Pasang tabung dari tautan di atas dan perbarui variabel lingkungan PATH Anda dengan perintah ini:
Refresh setiap terminal dengan
source ~/.bash_profile
dan Anda baik untuk mulai menggunakannya dengan sistem luas.Penggunaan Dasar:
Anda akan mendapatkan banyak info tentang pdf - lebih dari yang mungkin dibutuhkan kebanyakan orang.
Bash One-Liner:
Cukup mengembalikan
valid
atauinvalid
:Perhatikan bahwa ini dijalankan pada Mac OS X tapi saya menganggap itu berfungsi sama dengan lingkungan Bash berbasis Unix.
sumber