function ValidatePdfX: TPdfXValidationResult;
ValidatePdfX går igenom det öppna dokumentet och letar efter filformatsmarkörerna som definieras av ISO 15930-familjen:
pdfxid:GTS_PDFXVersion (och valfritt pdfxid:GTS_PDFXConformance för PDF/X-1a / PDF/X-3)pdfaExtension:schemas för pdfxid-namnutrymmet (XMP extension-schema-konvention)/GTS_PDFXVersion med samma värde som XMP-egenskapen/OutputIntents-array i katalogen som pekar på en OutputIntent-dictionary med en inbäddad ICC-profil via /DestOutputProfile/Title-post i Info-dictionaryn (PDF/X rekommenderar den starkt)/ID-array och avsaknad av /Encrypt (kryptering är förbjuden i alla PDF/X-versioner)xmp:CreateDate och xmp:ModifyDate-poster i XMP för Info / XMP-paritetResultatet är ett TPdfXValidationResult-record:
pxc1a (matchar "PDF/X-1"), pxc3 ("PDF/X-3"), pxc4 ("PDF/X-4"), pxcNone (ingen PDF/X-markör) eller pxcUnknown (markör finns men känns inte igen)TPdfXValidationIssues-mängd med noll eller flera av: pvxiMissingXmpMetadata, pvxiMissingPdfXIdentifier, pvxiMissingExtensionSchema, pvxiMissingInfoVersionEntry, pvxiInfoVersionMismatch, pvxiMissingOutputIntent, pvxiMissingIccProfile, pvxiMissingTitle, pvxiMissingTrailerId, pvxiEncryptionPresent, pvxiMissingXmpDatesValidatePdfX är en skrivskyddad inspektion. Använd den innan du skickar en PDF/X-payload in i ett prepress-flöde för att synliggöra bristande överensstämmelse för operatören. För den vanliga kontrollen "vilken PDF/X-nivå är detta?" som inte behöver problemlistan, använd den lättare PdfXConformance-egenskapen
pvxiInfoVersionMismatch bara när både Info /GTS_PDFXVersion och XMP pdfxid:GTS_PDFXVersion finns och skiljer sig åtConformance = pxcUnknown och en tom Issues-mängdpxcUnknown
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;