Preflight Reports
Efterlevnad, Dokumentinspektion, Automatisering
PDF/UA-läsaprofilval
PDF/UA-kontrollerna väljer del 2 när XMP identifierar pdfuaid:part=2 och behåller i övrigt del 1-kontrollerna; de äldre PDF/UA-1-kontroller som beskrivs här anses inte gälla del 2
PDF/UA-2-profilen implementerar kärnkontroller för identifikation, namnrymd, roll och struktur; strukturerade rapporter använder PDF/UA-2 och ISO 14289-2 och redovisar fullCertification=false och overifierad omfattning
Använd CheckFilePDFUACompliance eller RunPDFUAValidationPipelineTask för att tvinga en mål-del och GetPDFUAReadValidationCoverageJSON för att granska förmågesgränser
Översikt
PDF Library for Delphi kan köra sina inbyggda PDF/A- och PDF/UA-1-filfterlevnadskontroller mot en extern PDF och göra om resultatet till återanvändbar rapportutdata. Använd rapport-API:erna när ett program eller byggpipeline behöver samma diagnostik som CheckFileCompliance, men inte vill hantera stränglist-handles direkt
Rapportpipelinen är medvetet skiktad. CheckFileCompliance förblir lågnivå-API:t som returnerar problemslist-handles. CreatePreflightReport formaterar de valda kontrollerna till en stabil vanlig text-kropp. CreatePreflightReportEx konverterar samma textrapport till text, JSON, HTML eller CSV så att alla format delar samma pass/fail-status och problemräknare
Biblioteks-API:er
| CheckFileCompliance | Kör en vald efterlevnadskontroll mot en PDF-fil och returnerar 0 för godkänt eller en StringListID som innehåller problemrader |
|---|---|
| CreatePreflightReport | Kör PDF/A-, PDF/UA-1- eller båda kontrollerna och returnerar en vanlig text-rapport med rubrikmetadata, ett avsnitt per kontroll och en slutlig sammanfattning |
| CreatePreflightReportEx | Returnerar samma rapport i formaten text (0), JSON (1), HTML (2) eller CSV (3). Okända formatvärden faller tillbaka till text |
| SavePreflightReport | Skriver vanlig text-rapporten som UTF-8 och skapar den överordnade katalogen vid behov |
| SavePreflightReportEx | Skriver en text-, JSON-, HTML- eller CSV-rapport som UTF-8 och skapar den överordnade katalogen vid behov |
| ComparePreflightReports | Jämför två vanliga text-rapporter, ignorerar volatila Generated:-tidsstämpelrader och returnerar en kompakt diff bara när stabilt innehåll ändrats |
Formatkontrakt
| Text | Rapportens kanoniska kropp. Den innehåller Generated, Input, Checks, Issue mode, ett avsnitt per vald kontroll och ett Summary-block med Total issues och Result |
|---|---|
| JSON | Ett enda objekt med title, generated, input, checks, issueMode, sections och summary. Varje avsnitt har ett namn, en status och en problemsträngsarray |
| HTML | Ett fristående UTF-8-HTML-dokument. Textrapporten HTML-escapas och visas inuti ett förformaterat block, så rapportinnehållet syns utan att tolkas som markup |
| CSV | Rader använder de fasta kolumnerna kind,section,status,code,message. meta-rader bär rubrikfält, check-rader bär PASS/FAIL-avsnittsstatus, issue-rader delar numeriska problemkoder från meddelanden, och summary-rader bär de slutliga totalerna |
Efterlevundsval
Rapport-API:erna använder en bitmask för ComplianceTests: 1 väljer PDF/A, 2 väljer PDF/UA-1 och 3 väljer båda. Att skicka 0 kör också båda kontrollerna. Options använder för tillfället bit 1 för att stanna varje vald kontroll efter sitt första problem; skicka 0 för att samla alla rapporterade problem
Command-Line Demo
Delphi-konsol-demon PreflightReport visar rapportflödet utan att lägga till programspecifik UI. Den kan validera en enskild PDF, generera formaterad utdata, jämföra en ny textrapport mot en baslinje eller batchbearbeta en katalog
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
Enkelfilsläget returnerar exitkod 0 när de valda kontrollerna inte rapporterar några problem, 1 för kommandorads- eller körtidsfel och 2 när något problem rapporteras eller baslinjejämförelsen skiljer. Katalogläget skriver en <basename>.preflight.<ext>-fil per PDF och lägger till en preflight-summary.csv-fil med källsökväg, godkänd/underkänd-status, antal problem och rapportsökväg.
Comparison Notes
ComparePreflightReports är definierad för vanliga textrapporter. Den ska matas med baslinjetextrapporten och den nyligen genererade textrapporten, även när den mänskliga utdatan för samma körning är JSON, HTML eller CSV. Jämföraren normaliserar Generated:-rader eftersom tidsstämplar ändras vid varje körning; alla andra stabila rader jämförs i ordning med ett litet förhandsfönster så att insättnings- och raderingsskillnader förblir läsbara
Se även
CheckFileCompliance, CreatePreflightReport, CreatePreflightReportEx, SavePreflightReport, SavePreflightReportEx, ComparePreflightReports, GetPDFUADiagnostics