Preflight Reports
Compliance, Documentinspectie, Automatisering
PDF/UA-lezerprofielkeuze
PDF/UA-controles kiezen deel 2 wanneer XMP pdfuaid:part=2 identificeert en behouden anders de deel 1-controles; van de hier beschreven oudere PDF/UA-1-controles mag niet worden aangenomen dat ze voor deel 2 gelden
Het PDF/UA-2-profiel implementeert kerncontroles voor identificatie, naamruimten, rollen en structuur; gestructureerde rapporten gebruiken PDF/UA-2 en ISO 14289-2 en vermelden fullCertification=false en de niet-geverifieerde reikwijdte
Gebruik CheckFilePDFUACompliance of RunPDFUAValidationPipelineTask om een doeldeel af te dwingen en GetPDFUAReadValidationCoverageJSON om de grenzen van de mogelijkheden te bekijken
Overzicht
PDF Library for Delphi kan zijn ingebouwde PDF/A- en PDF/UA-1-bestandsconformiteitscontroles draaien tegen een externe PDF en het resultaat omzetten in herbruikbare rapportuitvoer. Gebruik de rapport-API's wanneer een toepassing of buildpipeline dezelfde diagnostics nodig heeft als CheckFileCompliance, maar geen stringlijst-handles zelf wil beheren
De rapportpipeline is bewust gelaagd. CheckFileCompliance blijft de low-level API die bevindingenlijst-handles teruggeeft. CreatePreflightReport giet de gekozen controles in een stabiele platte-tekstkern. CreatePreflightReportEx zet datzelfde tekstrapport om naar tekst, JSON, HTML of CSV, zodat alle formaten dezelfde pass/fail-status en bevindingentelling delen
Bibliotheek-API's
| CheckFileCompliance | Draait één gekozen compliancecontrole tegen een PDF-bestand en geeft 0 bij een geslaagde test of een StringListID met bevindingsregels terug |
|---|---|
| CreatePreflightReport | Draait PDF/A-, PDF/UA-1- of beide controles en geeft een rapport in platte tekst terug met header-metadata, één sectie per controle en een slotoverzicht |
| CreatePreflightReportEx | Retourneert hetzelfde rapport in tekstformaat (0), JSON-formaat (1), HTML-formaat (2) of CSV-formaat (3). Onbekende formaatwaarden vallen terug op tekst |
| SavePreflightReport | Schrijft het platte-tekstrapport als UTF-8 en maakt de bovenliggende map aan wanneer nodig |
| SavePreflightReportEx | Schrijft een tekst-, JSON-, HTML- of CSV-rapport als UTF-8 en maakt de bovenliggende map aan wanneer nodig |
| ComparePreflightReports | Vergelijkt twee rapporten in platte tekst, negeert vluchtige Generated:-tijdstempelregels en geeft alleen een compacte diff terug wanneer stabiele inhoud is gewijzigd |
Formaatcontract
| Text | De canonieke rapportkern. Hij bevat Generated, Input, Checks, Issue mode, één sectie per geselecteerde controle en een Summary-blok met Total issues en Result |
|---|---|
| JSON | Eén object met title, generated, input, checks, issueMode, sections en summary. Elke sectie heeft een naam, een status en een array met bevindingsstrings |
| HTML | Een op zichzelf staand UTF-8-HTML-document. Het tekstrapport is HTML-geëscapeerd en wordt in een preformatted-blok getoond, zodat de rapportinhoud zichtbaar is zonder als markup te worden geïnterpreteerd |
| CSV | Rijen gebruiken de vaste kolommen kind,section,status,code,message. meta-rijen dragen header-velden, check-rijen dragen PASS/FAIL-sectiestatus, issue-rijen splitsen numerieke bevindingscodes van meldingen, en summary-rijen dragen de eindtotalen |
Nalevingsselectie
De rapport-API's gebruiken een bitmasker voor ComplianceTests: 1 kiest PDF/A, 2 kiest PDF/UA-1 en 3 kiest beide. Ook 0 doorgeven draait beide controles. Options gebruikt momenteel bit 1 om elke gekozen controle te stoppen na zijn eerste bevinding; geef 0 door om alle gemelde bevindingen te verzamelen
Command-Line Demo
De Delphi-console-demo PreflightReport toont de rapportworkflow zonder toepassingsspecifieke UI toe te voegen. Hij kan één PDF valideren, geformatteerde uitvoer genereren, een nieuw tekstrapport tegen een baseline vergelijken of een map in batch verwerken
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
Single-file-modus geeft exitcode 0 terug wanneer de gekozen controles geen bevindingen melden, 1 bij commandline- of runtimefouten, en 2 wanneer er een bevinding wordt gemeld of de baselinevergelijking afwijkt. Directory-modus schrijft per PDF één bestand <basename>.preflight.<ext> en voegt een bestand preflight-summary.csv toe met bronpad, pass/fail-status, bevindingentelling en rapportpad
Comparison Notes
ComparePreflightReports is gedefinieerd voor platte-tekstrapporten. Voer er het baseline-tekstrapport en het nieuw gegenereerde tekstrapport in, ook wanneer de mensgerichte uitvoer van dezelfde run JSON, HTML of CSV is. De vergelijker normaliseert Generated:-regels omdat timestamps bij elke run veranderen; alle andere stabiele regels worden in volgorde vergeleken met een klein vooruitkijkvenster zodat invoeg- en verwijderdiffs leesbaar blijven
Zie ook
CheckFileCompliance, CreatePreflightReport, CreatePreflightReportEx, SavePreflightReport, SavePreflightReportEx, ComparePreflightReports, GetPDFUADiagnostics