Preflight Reports
Shoda, kontrola dokumentů, automatizace
Overview
PDF Library for Delphi dokáže spustit své vestavěné kontroly souladu souboru s PDF/A a PDF/UA-1 nad externím PDF a výsledek přetavit do znovu použitelného výstupu zpráv. Report API použijte, když aplikace nebo build pipeline potřebuje tutéž diagnostiku jako CheckFileCompliance, ale nechce si přímo spravovat handle string listů
Report pipeline je záměrně vrstvená. CheckFileCompliance zůstává nízkoúrovňovým API vracejícím handle seznamů problémů. CreatePreflightReport naformátuje vybrané kontroly do stabilního textového těla. CreatePreflightReportEx převede tutéž textovou zprávu do textu, JSON, HTML nebo CSV, takže všechny formáty sdílejí stejný stav pass/fail i počet problémů
Library APIs
| CheckFileCompliance | Runs one selected compliance check against a PDF file and returns 0 for pass or a StringListID containing issue lines. |
|---|---|
| CreatePreflightReport | Runs PDF/A, PDF/UA-1, or both checks and returns a plain-text report with header metadata, one section per check, and a final summary. |
| CreatePreflightReportEx | Vrací stejný report ve formátu text (0), JSON (1), HTML (2) nebo CSV (3). Neznámé hodnoty formátu se převedou na text |
| SavePreflightReport | Zapíše textovou zprávu jako UTF-8 a v případě potřeby vytvoří nadřazený adresář |
| SavePreflightReportEx | Zapíše zprávu text, JSON, HTML nebo CSV jako UTF-8 a v případě potřeby vytvoří nadřazený adresář |
| ComparePreflightReports | Compares two plain-text reports, ignores volatile Generated: timestamp lines, and returns a compact diff only when stable content changed. |
Format Contract
| Text | Kanonické tělo zprávy. Obsahuje Generated, Input, Checks, Issue mode, jednu sekci pro každou vybranou kontrolu a blok Summary s Total issues a Result |
|---|---|
| JSON | A single object with title, generated, input, checks, issueMode, sections, and summary. Each section has a name, status, and issue-string array. |
| HTML | Samostatný HTML dokument v UTF-8. Textová zpráva je HTML-escapovaná a zobrazí se v preformátovaném bloku, takže obsah zprávy je vidět, aniž by byl interpretován jako značky |
| CSV | Řádky používají pevné sloupce kind,section,status,code,message. Řádky meta nesou hlavičková pole, řádky check stav sekce PASS/FAIL, řádky issue oddělují číselné kódy problémů od zpráv a řádky summary nesou finální součty |
Compliance Selection
Report API používají pro ComplianceTests bitovou masku: 1 volí PDF/A, 2 volí PDF/UA-1 a 3 volí obojí. Předání 0 také spustí obě kontroly. Options aktuálně používá bit 1 k zastavení každé vybrané kontroly po jejím prvním nálezu; předejte 0, chcete-li sesbírat všechny nahlášené problémy
Command-Line Demo
Konzolová ukázka PreflightReport pro Delphi ukazuje workflow zpráv, aniž by přidala UI specifické pro aplikaci. Umí zvalidovat jedno PDF, vyrobit formátovaný výstup, porovnat novou textovou zprávu s referencí, nebo dávkově zpracovat adresář
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
Režim jednoho souboru vrátí výstupní kód 0, když vybrané kontroly nehlásí žádný problém, 1 pro chyby příkazové řádky nebo běhu a 2, když se hlásí jakýkoli problém nebo se liší porovnání s referencí. Režim adresáře zapíše pro každé PDF jeden soubor <basename>.preflight.<ext> a přidá soubor preflight-summary.csv se zdrojovou cestou, stavem pass/fail, počtem problémů a cestou ke zprávě
Comparison Notes
ComparePreflightReports je definováno pro textové zprávy. Měla by mu být předána referenční textová zpráva a nově vygenerovaná textová zpráva, i když lidsky čitelný výstup téhož běhu je JSON, HTML nebo CSV. Komparátor normalizuje řádky Generated:, protože časová razítka se mění při každém běhu; všechny ostatní stabilní řádky se porovnávají v pořadí s malým look-ahead oknem, aby diffy vložení a smazání zůstaly čitelné
Viz také
CheckFileCompliance, CreatePreflightReport, CreatePreflightReportEx, SavePreflightReport, SavePreflightReportEx, ComparePreflightReports, GetPDFUADiagnostics