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

CheckFileComplianceKör en vald efterlevnadskontroll mot en PDF-fil och returnerar 0 för godkänt eller en StringListID som innehåller problemrader
CreatePreflightReportKö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
CreatePreflightReportExReturnerar samma rapport i formaten text (0), JSON (1), HTML (2) eller CSV (3). Okända formatvärden faller tillbaka till text
SavePreflightReportSkriver vanlig text-rapporten som UTF-8 och skapar den överordnade katalogen vid behov
SavePreflightReportExSkriver en text-, JSON-, HTML- eller CSV-rapport som UTF-8 och skapar den överordnade katalogen vid behov
ComparePreflightReportsJämför två vanliga text-rapporter, ignorerar volatila Generated:-tidsstämpelrader och returnerar en kompakt diff bara när stabilt innehåll ändrats

Formatkontrakt

TextRapportens kanoniska kropp. Den innehåller Generated, Input, Checks, Issue mode, ett avsnitt per vald kontroll och ett Summary-block med Total issues och Result
JSONEtt enda objekt med title, generated, input, checks, issueMode, sections och summary. Varje avsnitt har ett namn, en status och en problemsträngsarray
HTMLEtt 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
CSVRader 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