Preflight Reports
Kepatuhan, Inspeksi dokumen, Otomatisasi
Ringkasan
PDF Library for Delphi bisa menjalankan pemeriksaan file-compliance PDF/A dan PDF/UA-1 bawaannya terhadap PDF eksternal dan mengubah hasilnya menjadi output laporan yang bisa dipakai ulang. Gunakan API laporan saat aplikasi atau build pipeline membutuhkan diagnostik yang sama seperti CheckFileCompliance tetapi tidak ingin mengelola handle string-list secara langsung
Pipeline laporan sengaja berlapis. CheckFileCompliance tetap menjadi API level-rendah yang mengembalikan handle issue-list. CreatePreflightReport memformat pemeriksaan terpilih menjadi body plain-text yang stabil. CreatePreflightReportEx mengonversi laporan teks yang sama itu ke teks, JSON, HTML, atau CSV sehingga semua format berbagi status pass/fail dan jumlah issue yang sama
API pustaka
| CheckFileCompliance | Menjalankan satu pemeriksaan kepatuhan terpilih terhadap file PDF dan mengembalikan 0 untuk lolos atau StringListID yang berisi baris-baris issue |
|---|---|
| CreatePreflightReport | Menjalankan pemeriksaan PDF/A, PDF/UA-1, atau keduanya dan mengembalikan laporan plain-text dengan metadata header, satu section per pemeriksaan, dan ringkasan akhir |
| CreatePreflightReportEx | Mengembalikan laporan yang sama dalam format teks (0), JSON (1), HTML (2), atau CSV (3). Nilai format yang tidak dikenal jatuh ke teks |
| SavePreflightReport | Menulis laporan plain-text sebagai UTF-8 dan membuat direktori induknya bila perlu |
| SavePreflightReportEx | Menulis laporan teks, JSON, HTML, atau CSV sebagai UTF-8 dan membuat direktori induknya bila perlu |
| ComparePreflightReports | Membandingkan dua laporan plain-text, mengabaikan baris timestamp Generated: yang mudah berubah, dan mengembalikan diff ringkas hanya saat konten stabilnya berubah |
Kontrak format
| Text | Body laporan kanoniknya. Ia memuat Generated, Input, Checks, Issue mode, satu section untuk setiap pemeriksaan terpilih, dan block Summary dengan Total issues dan Result |
|---|---|
| JSON | Satu objek dengan title, generated, input, checks, issueMode, sections, dan summary. Setiap section memiliki nama, status, dan array issue-string |
| HTML | Dokumen HTML UTF-8 mandiri. Laporan teks di-escape HTML dan ditampilkan di dalam block terformat, sehingga isi laporan terlihat tanpa diinterpretasikan sebagai markup |
| CSV | Baris memakai kolom tetap kind,section,status,code,message. Baris meta membawa field header, baris check membawa status section PASS/FAIL, baris issue memisahkan kode issue numerik dari pesannya, dan baris summary membawa total akhirnya |
Pilihan kepatuhan
API laporan memakai bitmask untuk ComplianceTests: 1 memilih PDF/A, 2 memilih PDF/UA-1, dan 3 memilih keduanya. Meneruskan 0 juga menjalankan kedua pemeriksaan. Options saat ini memakai bit 1 untuk menghentikan setiap pemeriksaan terpilih setelah issue pertamanya; berikan 0 untuk mengumpulkan semua issue yang dilaporkan
Command-Line Demo
Demo konsol Delphi PreflightReport menunjukkan workflow laporan tanpa menambahkan UI spesifik aplikasi. Ia bisa memvalidasi satu PDF, menghasilkan output terformat, membandingkan laporan teks baru terhadap baseline, atau memproses batch sebuah direktori
PreflightReport.exe --input "C:\PDFs\invoice.pdf" --output "C:\Reports\invoice.preflight.txt"
PreflightReport.exe --input "C:\PDFs\invoice.pdf" --output "C:\Reports\invoice.preflight.json" --json
PreflightReport.exe --input "C:\PDFs\invoice.pdf" --output "C:\Reports\invoice.preflight.csv" --format csv
PreflightReport.exe --input "C:\PDFs\invoice.pdf" --output "C:\Reports\invoice.preflight.txt" --compare "C:\Baselines\invoice.preflight.txt"
PreflightReport.exe --input-dir "C:\PDFs" --output-dir "C:\Reports" --recursive --format html
Mode satu-file mengembalikan exit code 0 saat pemeriksaan terpilih tidak melaporkan issue, 1 untuk error command-line atau runtime, dan 2 saat ada issue yang dilaporkan atau perbandingan baseline berbeda. Mode direktori menulis satu file <basename>.preflight.<ext> per PDF dan menambahkan file preflight-summary.csv dengan path sumber, status pass/fail, jumlah issue, dan path laporan
Comparison Notes
ComparePreflightReports didefinisikan untuk laporan plain-text. Berikan laporan teks baseline dan laporan teks yang baru dibuat, bahkan ketika output yang dihadapkan ke manusia untuk eksekusi yang sama adalah JSON, HTML, atau CSV. Comparator menormalisasi baris Generated: karena timestamp berubah pada setiap eksekusi; semua baris stabil lainnya dibandingkan berurutan dengan jendela look-ahead kecil agar diff penyisipan dan penghapusan tetap terbaca
Lihat juga
CheckFileCompliance, CreatePreflightReport, CreatePreflightReportEx, SavePreflightReport, SavePreflightReportEx, ComparePreflightReports, GetPDFUADiagnostics