Preflight Reports
Overensstemmelse, dokumentinspektion, automatisering
Overview
PDF Library for Delphi kan køre sine indbyggede PDF/A- og PDF/UA-1-filoverensstemmelseskontroller mod en ekstern PDF og omdanne resultatet til genanvendeligt rapportoutput. Brug rapport-API'erne, når et program eller en buildpipeline har brug for de samme diagnosticeringer som CheckFileCompliance, men ikke vil administrere strenglistehandles direkte.
Rapportpipelinen er bevidst lagdelt. CheckFileCompliance er fortsat den lavniveau-API, der returnerer håndtag til problemlister. CreatePreflightReport formaterer de valgte kontroller til en stabil klartekst. CreatePreflightReportEx konverterer samme tekstrapport til tekst, JSON, HTML eller CSV, så alle formater deler samme bestået/ikke-bestået-status og problemantal
Biblioteks-API'er
| CheckFileCompliance | Kører én valgt overensstemmelseskontrol på en PDF-fil og returnerer 0 ved godkendelse eller et StringListID med problemlinjer |
|---|---|
| CreatePreflightReport | Kører PDF/A-, PDF/UA-1- eller begge kontroller og returnerer en rapport i almindelig tekst med headermetadata, én sektion pr. kontrol og en afsluttende oversigt. |
| CreatePreflightReportEx | Returnerer den samme rapport i tekstformat (0), JSON-format (1), HTML-format (2) eller CSV-format (3). Ukendte formatværdier falder tilbage til tekst |
| SavePreflightReport | Skriver rapporten i almindelig tekst som UTF-8 og opretter den overordnede mappe efter behov. |
| SavePreflightReportEx | Skriver en tekst-, JSON-, HTML- eller CSV-rapport som UTF-8 og opretter om nødvendigt den overordnede mappe. |
| ComparePreflightReports | Sammenligner to rapporter i almindelig tekst, ignorerer flygtige tidsstempellinjer af formen Generated: og returnerer kun en kompakt diff, når stabilt indhold er ændret. |
Formatkontrakt
| Text | Den kanoniske rapporttekst. Den indeholder Generated, Input, Checks, Issue mode, én sektion for hver valgt kontrol og en Summary-blok med Total issues og Result |
|---|---|
| JSON | Et enkelt objekt med title, generated, input, checks, issueMode, sections og summary. Hver sektion har et navn, en status og et array med problemstrenge. |
| HTML | Et selvstændigt UTF-8 HTML-dokument. Tekstrapporten HTML-escapes og vises i en præformateret blok, så rapportindholdet er synligt uden at blive fortolket som markup. |
| CSV | Rækker bruger de faste kolonner kind,section,status,code,message. meta-rækker indeholder headerfelter, check-rækker indeholder sektionsstatussen PASS/FAIL, issue-rækker adskiller numeriske problemkoder fra meddelelser, og summary-rækker indeholder de endelige totaler. |
Valg af overensstemmelse
Rapport-API'erne bruger en bitmaske til ComplianceTests: 1 vælger PDF/A, 2 vælger PDF/UA-1, og 3 vælger begge. Hvis 0 angives, køres begge kontroller også. Options bruger i øjeblikket bit 1 til at stoppe hver valgt kontrol efter dens første problem; angiv 0 for at indsamle alle rapporterede problemer.
Kommandolinjedemo
Delphi-konsoldemonstrationen PreflightReport viser rapportarbejdsgangen uden at tilføje programspecifik brugergrænseflade. Den kan validere en enkelt PDF, generere formateret output, sammenligne en ny tekstrapport med en baseline eller batchbehandle en mappe.
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
Enkeltfilstilstand returnerer afslutningskode 0, når de valgte kontroller ikke rapporterer problemer, 1 ved kommandolinje- eller kørselsfejl og 2, når der rapporteres et problem, eller basissammenligningen afviger. Mappetilstand skriver én <basename>.preflight.<ext>-fil pr. PDF og tilføjer filen preflight-summary.csv med kildesti, bestået/ikke bestået-status, problemantal og rapportsti.
Bemærkninger om sammenligning
ComparePreflightReports er defineret til rapporter i almindelig tekst. Den skal modtage baselinerapporten i tekstform og den nyligt genererede tekstrapport, selv når det menneskelæsbare output for samme kørsel er JSON, HTML eller CSV. Sammenligningen normaliserer Generated:-linjer, fordi tidsstempler ændres ved hver kørsel; alle øvrige stabile linjer sammenlignes i rækkefølge med et lille fremadrettet vindue for at gøre forskelle ved indsættelser og sletninger læsbare.
Se også
CheckFileCompliance, CreatePreflightReport, CreatePreflightReportEx, SavePreflightReport, SavePreflightReportEx, ComparePreflightReports, GetPDFUADiagnostics