Preflight-Berichte
Konformität, Dokumentprüfung, Automatisierung
Auswahl des PDF/UA-Reader-Profils
PDF/UA-Prüfungen wählen Teil 2, wenn XMP pdfuaid:part=2 ausweist, und behalten andernfalls die Prüfungen von Teil 1 bei; die hier beschriebenen älteren PDF/UA-1-Prüfungen gelten nicht automatisch für Teil 2
Das PDF/UA-2-Profil implementiert zentrale Identifikations-, Namespace-, Rollen- und Strukturprüfungen; strukturierte Berichte verwenden PDF/UA-2 und ISO 14289-2 und legen fullCertification=false und den nicht verifizierten Umfang offen
Verwenden Sie CheckFilePDFUACompliance oder RunPDFUAValidationPipelineTask, um einen Zielteil zu erzwingen, und GetPDFUAReadValidationCoverageJSON, um Fähigkeitsgrenzen zu prüfen
Überblick
PDF Library for Delphi kann seine integrierten Prüfungen der PDF/A- und PDF/UA-1-Dateikonformität auf ein externes PDF anwenden und das Ergebnis in wiederverwendbare Berichtsausgaben umwandeln. Verwenden Sie die Berichts-APIs, wenn eine Anwendung oder Build-Pipeline dieselben Diagnosen wie CheckFileCompliance benötigt, aber Zeichenfolgenlistenhandles nicht direkt verwalten soll.
Die Berichtspipeline ist bewusst in Ebenen aufgebaut. CheckFileCompliance bleibt die Low-Level-API, die Handles von Problemlisten zurückgibt. CreatePreflightReport formatiert die ausgewählten Prüfungen als stabilen Klartextkörper. CreatePreflightReportEx wandelt denselben Textbericht in Text, JSON, HTML oder CSV um, sodass alle Formate denselben Bestanden/Fehlgeschlagen-Status und dieselbe Problemzahl verwenden.
Bibliotheks-APIs
| CheckFileCompliance | Führt eine ausgewählte Konformitätsprüfung an einer PDF-Datei aus und gibt bei Erfolg 0 oder eine StringListID mit Problemzeilen zurück. |
|---|---|
| CreatePreflightReport | Führt PDF/A-, PDF/UA-1- oder beide Prüfungen aus und gibt einen Klartextbericht mit Header-Metadaten, einem Abschnitt pro Prüfung und einer abschließenden Zusammenfassung zurück. |
| CreatePreflightReportEx | Gibt denselben Bericht im Textformat (0), JSON-Format (1), HTML-Format (2) oder CSV-Format (3) zurück. Unbekannte Formatwerte fallen auf Text zurück. |
| SavePreflightReport | Schreibt den Klartextbericht als UTF-8 und erstellt bei Bedarf das übergeordnete Verzeichnis. |
| SavePreflightReportEx | Schreibt einen Text-, JSON-, HTML- oder CSV-Bericht als UTF-8 und erstellt bei Bedarf das übergeordnete Verzeichnis. |
| ComparePreflightReports | Vergleicht zwei Klartextberichte, ignoriert veränderliche Generated:-Zeitstempelzeilen und gibt nur dann einen kompakten Diff zurück, wenn sich stabile Inhalte geändert haben. |
Formatvertrag
| Text | Der kanonische Berichtskörper. Er enthält Generated, Input, Checks, Issue mode, einen Abschnitt für jede ausgewählte Prüfung und einen Summary-Block mit Total issues und Result. |
|---|---|
| JSON | Ein einzelnes Objekt mit title, generated, input, checks, issueMode, sections und summary. Jeder Abschnitt besitzt einen Namen, einen Status und ein Array mit Problemzeichenfolgen. |
| HTML | Ein eigenständiges UTF-8-HTML-Dokument. Der Textbericht wird HTML-maskiert und in einem vorformatierten Block angezeigt, sodass der Berichtinhalt sichtbar ist, ohne als Markup interpretiert zu werden. |
| CSV | Die Zeilen verwenden die festen Spalten kind,section,status,code,message. meta-Zeilen enthalten Headerfelder, check-Zeilen den PASS/FAIL-Status des Abschnitts, issue-Zeilen trennen numerische Problemcodes von Meldungen, und summary-Zeilen enthalten die Endsummen. |
Konformitätsauswahl
Die Berichts-APIs verwenden eine Bitmaske für ComplianceTests: 1 wählt PDF/A aus, 2 wählt PDF/UA-1 aus und 3 wählt beide aus. Auch bei Übergabe von 0 werden beide Prüfungen ausgeführt. Options verwendet derzeit Bit 1, um jede ausgewählte Prüfung nach dem ersten Problem zu beenden; übergeben Sie 0, um alle gemeldeten Probleme zu erfassen.
Befehlszeilendemo
Die Delphi-Konsolendemo PreflightReport zeigt den Berichtsablauf, ohne anwendungsspezifische UI hinzuzufügen. Sie kann ein einzelnes PDF validieren, formatierte Ausgaben erzeugen, einen neuen Textbericht mit einer Baseline vergleichen oder ein Verzeichnis stapelweise verarbeiten.
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
Im Einzeldateimodus wird der Exitcode 0 zurückgegeben, wenn die ausgewählten Prüfungen keine Probleme melden, 1 bei Befehlszeilen- oder Laufzeitfehlern und 2, wenn ein Problem gemeldet wird oder der Baselinevergleich abweicht. Der Verzeichnismodus schreibt pro PDF eine Datei <basename>.preflight.<ext> und ergänzt eine Datei preflight-summary.csv mit Quellpfad, Bestanden/Fehlgeschlagen-Status, Problemzahl und Berichtspfad.
Vergleichshinweise
ComparePreflightReports ist für Klartextberichte definiert. Die Funktion sollte den Baseline-Textbericht und den neu erzeugten Textbericht erhalten, auch wenn die für Menschen bestimmte Ausgabe desselben Durchlaufs JSON, HTML oder CSV ist. Der Vergleicher normalisiert Generated:-Zeilen, da sich Zeitstempel bei jedem Durchlauf ändern; alle anderen stabilen Zeilen werden der Reihe nach mit einem kleinen Vorschaufenster verglichen, damit Einfügungs- und Löschungs-Diffs lesbar bleiben.
Siehe auch
CheckFileCompliance, CreatePreflightReport, CreatePreflightReportEx, SavePreflightReport, SavePreflightReportEx, ComparePreflightReports, GetPDFUADiagnostics