function ValidatePdfX: TPdfXValidationResult;
ValidatePdfX durchläuft das geöffnete Dokument und sucht nach Dateiformat-Markern und ausgewählten Inhaltsregeln der ISO-15930-Familie
pdfxid:GTS_PDFXVersion enthält (und optional pdfxid:GTS_PDFXConformance für PDF/X-1a / PDF/X-3)pdfaExtension:schemas-Beschreibung für den pdfxid-Namespace (XMP-Erweiterungsschema-Konvention)/GTS_PDFXVersion mit demselben Wert wie die XMP-Eigenschaft/OutputIntents, das auf ein OutputIntent-Dictionary mit einem über /DestOutputProfile eingebetteten ICC-Profil verweistprtr / CMYK bestehen, einschließlich eines Lab- oder XYZ-PCS und der erforderlichen bidirektionalen LUTs, und sein Stream muss /N 4 deklarieren/Title (von PDF/X dringend empfohlen)/ID-Array und die Abwesenheit von /Encrypt (Verschlüsselung wird von allen PDF/X-Versionen untersagt)xmp:CreateDate- und xmp:ModifyDate-Einträge in XMP für Info-/XMP-ParitätpvxiInvalidOutputProfile meldet ein PDF/X-1a-Output-Profil, das nicht unterstützt wird, fehlerhaft ist oder mit diesen Anforderungen unvereinbar - einschließlich eines RGB-Profils, das sich per /N 4 tarnt, oder einer falschen Komponentenanzahl
Sowohl der Sparse- als auch der Kompatibilitäts-Validator führen diese Prüfung durch; eine bloße /DestOutputProfile-Referenz etabliert kein akzeptables PDF/X-1a-Profil mehr
Das Ergebnis ist ein TPdfXValidationResult-Record:
pxc1a, pxc3, pxc4 oder pxc6; pxcNone und pxcUnknown begründen keine anerkannte PDF/X-StufeTPdfXValidationIssues-Menge, die Metadaten, Info-Dictionary-Parität, OutputIntent-Form, Verschlüsselung, verbotenen aktiven Inhalt, Schriftart-Einbettung, Transparenz- und Farbraum-Einschränkungen, TrimBox-Präsenz, Seitenbox-Geometrie und den Trapped-Zustand abdecktConformance eine echte PDF/X-Stufe ist und Issues leer istValidatePdfX ist eine rein lesende Prüfung. Setzen Sie sie ein,
bevor eine PDF/X-Nutzlast in einen Druckvorstufen-Workflow eingespeist
wird, um dem Bediener Nonkonformitäten offenzulegen. Für die häufige
Prüfung „Welche PDF/X-Stufe hat das Dokument?“, die keine
Problemliste benötigt, ziehen Sie die schlankere Eigenschaft
PdfXConformance vor
pvxiInfoVersionMismatch nur, wenn sowohl Info /GTS_PDFXVersion als auch XMP pdfxid:GTS_PDFXVersion vorhanden sind und auseinanderlaufenConformance = pxcUnknown und einer leeren Issues-MengePDF/X-1, PDF/X-3, PDF/X-4 oder PDF/X-6 enthält; die bloße Marker-Erkennung ist noch kein Konformitätsurteil
uses System.TypInfo;
var
Outcome: TPdfXValidationResult;
Issue: TPdfXValidationIssue;
begin
Pdf1.FileName := 'C:\Incoming\ad.pdf';
Pdf1.Active := True;
Outcome := Pdf1.ValidatePdfX;
Memo1.Lines.Add('Level: ' + GetEnumName(TypeInfo(TPdfXConformance),
Ord(Outcome.Conformance)));
for Issue in Outcome.Issues do
Memo1.Lines.Add('- ' + GetEnumName(TypeInfo(TPdfXValidationIssue), Ord(Issue)));
end;