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

CheckFileComplianceKører én valgt overensstemmelseskontrol på en PDF-fil og returnerer 0 ved godkendelse eller et StringListID med problemlinjer
CreatePreflightReportKø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.
CreatePreflightReportExReturnerer den samme rapport i tekstformat (0), JSON-format (1), HTML-format (2) eller CSV-format (3). Ukendte formatværdier falder tilbage til tekst
SavePreflightReportSkriver rapporten i almindelig tekst som UTF-8 og opretter den overordnede mappe efter behov.
SavePreflightReportExSkriver en tekst-, JSON-, HTML- eller CSV-rapport som UTF-8 og opretter om nødvendigt den overordnede mappe.
ComparePreflightReportsSammenligner to rapporter i almindelig tekst, ignorerer flygtige tidsstempellinjer af formen Generated: og returnerer kun en kompakt diff, når stabilt indhold er ændret.

Formatkontrakt

TextDen kanoniske rapporttekst. Den indeholder Generated, Input, Checks, Issue mode, én sektion for hver valgt kontrol og en Summary-blok med Total issues og Result
JSONEt enkelt objekt med title, generated, input, checks, issueMode, sections og summary. Hver sektion har et navn, en status og et array med problemstrenge.
HTMLEt 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.
CSVRæ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