Preflight Reports
Compliance, Document inspection, Automation
Overview
PDF Library for Delphi có thể chạy các lượt kiểm tra tuân thủ file PDF/A và PDF/UA-1 dựng sẵn trên một PDF ngoài và biến kết quả thành đầu ra báo cáo tái sử dụng. Dùng các API báo cáo khi một ứng dụng hay pipeline build cần cùng chẩn đoán với CheckFileCompliance nhưng không muốn tự quản lý các handle danh sách chuỗi
Pipeline báo cáo được xếp tầng một cách chủ ý. CheckFileCompliance vẫn là API cấp thấp trả về các handle danh sách vấn đề. CreatePreflightReport định dạng các lượt kiểm tra đã chọn thành một thân văn bản thuần ổn định. CreatePreflightReportEx chuyển cùng báo cáo văn bản đó thành văn bản, JSON, HTML hay CSV nên mọi định dạng dùng chung trạng thái đạt/trượt và số vấn đề
Library APIs
| CheckFileCompliance | Chạy một lượt kiểm tra tuân thủ đã chọn trên một file PDF và trả về 0 nếu đạt hay một StringListID chứa các dòng vấn đề |
|---|---|
| CreatePreflightReport | Chạy lượt kiểm tra PDF/A, PDF/UA-1 hay cả hai và trả về báo cáo văn bản thuần với metadata header, một phần cho mỗi lượt kiểm tra và tóm tắt cuối |
| CreatePreflightReportEx | Trả về cùng báo cáo ở định dạng văn bản (0), JSON (1), HTML (2) hay CSV (3). Giá trị định dạng lạ rơi về văn bản |
| SavePreflightReport | Ghi báo cáo văn bản thuần dạng UTF-8 và tạo thư mục cha khi cần |
| SavePreflightReportEx | Ghi báo cáo văn bản, JSON, HTML hoặc CSV dạng UTF-8 và tạo thư mục cha khi cần |
| ComparePreflightReports | So hai báo cáo văn bản thuần, bỏ qua các dòng timestamp Generated: hay đổi, và chỉ trả về một diff gọn khi nội dung ổn định thay đổi |
Format Contract
| Text | Thân báo cáo chuẩn tắc. Nó chứa Generated, Input, Checks, Issue mode, một phần cho mỗi lượt kiểm tra đã chọn, và một khối Summary với Total issues và Result |
|---|---|
| JSON | Một object duy nhất với title, generated, input, checks, issueMode, sections và summary. Mỗi section có tên, trạng thái và mảng chuỗi vấn đề |
| HTML | Một tài liệu HTML UTF-8 độc lập. Báo cáo văn bản được HTML-escape và hiển thị trong một khối preformatted, nên nội dung báo cáo nhìn thấy được mà không bị hiểu nhầm là markup |
| CSV | Các dòng dùng cố định các cột kind,section,status,code,message. Dòng meta mang các trường header, dòng check mang trạng thái PASS/FAIL của phần, dòng issue tách mã vấn đề số khỏi thông điệp, và dòng summary mang tổng cuối |
Compliance Selection
Các API báo cáo dùng một bit mask cho ComplianceTests: 1 chọn PDF/A, 2 chọn PDF/UA-1, và 3 chọn cả hai. Truyền 0 cũng chạy cả hai lượt kiểm tra. Options hiện dùng bit 1 để dừng mỗi lượt kiểm tra đã chọn sau vấn đề đầu tiên; truyền 0 để thu toàn bộ vấn đề được báo
Command-Line Demo
Demo console PreflightReport của Delphi cho thấy quy trình báo cáo mà không thêm UI riêng của ứng dụng. Nó kiểm tra một PDF đơn lẻ, sinh đầu ra có định dạng, so một báo cáo văn bản mới với baseline, hay xử lý lô một thư mục
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
Chế độ một file trả về exit code 0 khi các lượt kiểm tra đã chọn không báo vấn đề, 1 cho lỗi dòng lệnh hay runtime, và 2 khi có bất kỳ vấn đề nào được báo hay kết quả so với baseline khác nhau. Chế độ thư mục ghi một file <basename>.preflight.<ext> cho mỗi PDF và thêm một file preflight-summary.csv với đường nguồn, trạng thái đạt/trượt, số vấn đề và đường báo cáo
Comparison Notes
ComparePreflightReports được định nghĩa cho báo cáo văn bản thuần. Nó nên được cho ăn báo cáo văn bản baseline và báo cáo văn bản mới sinh ra, ngay cả khi đầu ra hướng người dùng của cùng lần chạy là JSON, HTML hay CSV. Bộ so sánh chuẩn hóa các dòng Generated: vì timestamp đổi mỗi lần chạy; mọi dòng ổn định khác được so theo thứ tự với một cửa sổ look-ahead nhỏ để các diff chèn/xóa vẫn dễ đọc
Xem thêm
CheckFileCompliance, CreatePreflightReport, CreatePreflightReportEx, SavePreflightReport, SavePreflightReportEx, ComparePreflightReports, GetPDFUADiagnostics