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

CheckFileComplianceMenjalankan satu pemeriksaan kepatuhan terpilih terhadap file PDF dan mengembalikan 0 untuk lolos atau StringListID yang berisi baris-baris issue
CreatePreflightReportMenjalankan pemeriksaan PDF/A, PDF/UA-1, atau keduanya dan mengembalikan laporan plain-text dengan metadata header, satu section per pemeriksaan, dan ringkasan akhir
CreatePreflightReportExMengembalikan laporan yang sama dalam format teks (0), JSON (1), HTML (2), atau CSV (3). Nilai format yang tidak dikenal jatuh ke teks
SavePreflightReportMenulis laporan plain-text sebagai UTF-8 dan membuat direktori induknya bila perlu
SavePreflightReportExMenulis laporan teks, JSON, HTML, atau CSV sebagai UTF-8 dan membuat direktori induknya bila perlu
ComparePreflightReportsMembandingkan dua laporan plain-text, mengabaikan baris timestamp Generated: yang mudah berubah, dan mengembalikan diff ringkas hanya saat konten stabilnya berubah

Kontrak format

TextBody laporan kanoniknya. Ia memuat Generated, Input, Checks, Issue mode, satu section untuk setiap pemeriksaan terpilih, dan block Summary dengan Total issues dan Result
JSONSatu objek dengan title, generated, input, checks, issueMode, sections, dan summary. Setiap section memiliki nama, status, dan array issue-string
HTMLDokumen HTML UTF-8 mandiri. Laporan teks di-escape HTML dan ditampilkan di dalam block terformat, sehingga isi laporan terlihat tanpa diinterpretasikan sebagai markup
CSVBaris 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