Bagaimana saya bisa memeriksa file PDF, lebih disukai dengan alat?
Kasus penggunaan: Saya mencoba membuat file PDF secara terprogram (menggunakan iText). Saya mengalami masalah dalam mencapai tata letak tertentu, tetapi saya memiliki file PDF dengan teks yang ditata seperti yang saya inginkan (dihasilkan dari Word). Saya ingin merekayasa balik cara mereka melakukannya.
PDF Inspector sepertinya bagus, tapi saya mencari sesuatu untuk Windows.
no main manifest attribute, in PDF Document Inspector.jar
Jawaban:
Adobe Acrobat memiliki mode yang sangat keren tetapi cukup tersembunyi yang memungkinkan Anda untuk memeriksa file PDF. Saya menulis artikel blog yang menjelaskannya di https://blog.idrsolutions.com/2009/04/viewing-pdf-objects/
sumber
Selain alat berbasis GUI yang disebutkan dalam jawaban lain, ada beberapa alat baris perintah yang dapat mengubah kode sumber PDF asli menjadi representasi berbeda yang memungkinkan Anda memeriksa (file yang sekarang dimodifikasi) dengan editor teks. Semua alat di bawah ini berfungsi di Linux, Mac OS X, sistem Unix lain, atau Windows.
qpdf
(kesukaanku)Gunakan qpdf untuk membuka kompresi (sebagian besar) aliran objek dan juga membedah
ObjStm
objek menjadi objek tidak langsung individual:qpdf
mendeskripsikan dirinya sebagai alat yang melakukan "transformasi struktural, yang memelihara konten pada file PDF" .Kemudian buka + periksa
uncompressed-qpdf.pdf
file di editor teks favorit Anda. Sebagian besar byte yang sebelumnya dikompresi (dan karenanya, biner) sekarang akan menjadi teks biasa.mutool
Ada juga
mutool
alat baris perintah yang dibundel dengan penampil PDF MuPDF (yang merupakan produk saudara Ghostscript, dibuat oleh perusahaan yang sama, Artifex ). Perintah berikut juga membuka kompresi aliran dan membuatnya lebih mudah untuk diperiksa melalui editor teks:podofouncompress
PoDoFo adalah pustaka FreeSoftware / OpenSource untuk bekerja dengan format PDF dan mencakup beberapa alat baris perintah, termasuk
podofouncompress
. Gunakan seperti ini untuk membuka kompresi aliran PDF:peepdf.py
PeePDF adalah alat berbasis Python yang membantu Anda menjelajahi file PDF. Tujuan aslinya adalah untuk penelitian dan pembedahan malware berbasis PDF, tetapi saya merasa berguna juga untuk menyelidiki struktur file PDF yang sepenuhnya jinak.
Ini dapat digunakan secara interaktif untuk "menelusuri" objek dan aliran yang terdapat dalam PDF.
Saya tidak akan memberikan contoh penggunaan di sini, tetapi hanya tautan ke dokumentasinya:
pdfid.py
danpdf-parser.py
pdfid.py
danpdf-parser.py
dua alat PDF oleh Didier Stevens yang ditulis dengan Python.Latar belakang mereka juga untuk membantu menjelajahi PDF berbahaya - tetapi saya juga merasa berguna untuk menganalisis struktur dan konten file PDF jinak.
Berikut adalah contoh bagaimana saya mengekstrak aliran tidak terkompresi dari objek PDF no. 5 menjadi file * .dump:
Catatan akhir
Harap dicatat bahwa beberapa bagian biner di dalam PDF belum tentu tidak dapat dikompresi (atau dapat didekodekan menjadi kode ASCII yang dapat dibaca manusia), karena mereka tertanam dan digunakan dalam format aslinya di dalam PDF. Bagian PDF tersebut adalah gambar JPEG, font atau profil warna ICC.
Jika Anda membandingkan alat-alat di atas dan contoh baris perintah yang diberikan, Anda akan menemukan bahwa mereka TIDAK semuanya menghasilkan keluaran yang sama. Upaya membandingkan keduanya karena perbedaannya sendiri dapat membantu Anda lebih memahami sifat sintaks PDF dan format file.
sumber
Saya menggunakan iText RUPS (Membaca dan Memperbarui Sintaks PDF) di Linux. Karena ditulis di Java, ini juga berfungsi di Windows. Anda dapat menelusuri semua objek dalam file PDF dalam struktur pohon. Itu juga dapat mendekode aliran yang dikodekan Flate dengan cepat untuk mempermudah pemeriksaan.
Ini tangkapan layarnya:
sumber
java -jar itext-rups-5.5.6.jar
->Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: com/itextpdf/text/Version
- Bagaimana Anda bisa menjalankan hal ini? Edit: Berhasil. Anda tidak boleh mengunduh file default yang ditawarkan oleh SourceForge, Anda perlu mengunduh .jar yang menyertakan dependensi.PDFXplorer dari O2 Solutions melakukan pekerjaan luar biasa dalam menampilkan internal.
http://www.o2sol.com/pdfxplorer/overview.htm
(Gratis, spanduk mengganggu di bagian bawah).
sumber
Saya telah menggunakan PDFBox dengan kesuksesan yang baik. Berikut adalah contoh tampilan kode (kembali dari versi 0.7.2), yang kemungkinan besar berasal dari salah satu contoh yang diberikan:
sumber
Ada juga opsi lain. Adobe Acrobat Pro juga dapat menampilkan struktur pohon internal PDF.
Di atas Adobe Acrobat Pro juga dapat menampilkan struktur internal Font Dokumen dalam PDF sebagian besar "penampil struktur pohon PDF" lainnya tidak memiliki fitur ini
sumber
Penampil objek di Acrobat bagus tetapi Canopener PDF Windjack Solution memungkinkan inspeksi yang lebih baik dengan pipet untuk memilih objek di halaman. Juga mengizinkan modifikasi dilakukan ke PDF.
http://www.windjack.com/products/pdfcanopener.html
sumber
PDF Analyzer mirip dengan PDFXplorer , tetapi memiliki lebih banyak opsi. Ini juga gratis setelah satu pendaftaran.
sumber
Jika Anda ingin bekerja secara terprogram dari dalam Python, pdfminer adalah pilihan yang bagus. Ini memungkinkan Anda untuk bekerja dengan struktur PDF di memori sebagai hierarki objek atau membuat serial sebagai XML.
sumber
Saran saya adalah Foxit PDF Reader yang sangat membantu untuk melakukan pekerjaan pengeditan teks penting pada file pdf.
sumber