function ValidatePdfX: TPdfXValidationResult;
ValidatePdfX preišče odprt dokument in poišče označevalce oblike datoteke ter izbrana pravila vsebine, ki jih določa družina ISO 15930
pdfxid:GTS_PDFXVersion (in po želji pdfxid:GTS_PDFXConformance za PDF/X-1a / PDF/X-3)pdfaExtension:schemas za imenski prostor pdfxid (običaj razširitvene sheme XMP)/GTS_PDFXVersion v slovarju Document Information z enako vrednostjo kot lastnost XMP/OutputIntents v katalogu s sklicem na slovar OutputIntent z vgrajenim profilom ICC prek /DestOutputProfile/Title v slovarju Info (PDF/X ga močno priporoča)/ID v repnem delu in odsotnost /Encrypt (šifriranje prepovedujejo vse različice PDF/X)xmp:CreateDate in xmp:ModifyDate v XMP za soglasje Info / XMPRezultat je zapis TPdfXValidationResult:
pxc1a (ujema se z "PDF/X-1"), pxc3 ("PDF/X-3"), pxc4 ("PDF/X-4"), pxcNone (brez označevalca PDF/X) ali pxcUnknown (označevalec prisoten, a neprepoznan)TPdfXValidationIssues, ki pokriva metapodatke, soglasje slovarja Info, obliko OutputIntent, šifriranje, prepovedano dejavno vsebino, vgrajenost pisav, omejitve prosojnosti in barvnih prostorov, prisotnost TrimBox, geometrijo stranskih okvirjev in stanje trappedConformance prava raven PDF/X in je Issues prazenValidatePdfX je pregled v načinu samo za branje. Uporabite ga, preden
vsebino PDF/X potisnete v predtiskovni potek, da operaterju razkrije
neskladnost. Za pogost pregled »katera raven PDF/X je to?«,
ki ne potrebuje seznama težav, raje uporabite lažjo lastnost
PdfXConformance
pvxiInfoVersionMismatch samo, ko sta Info /GTS_PDFXVersion in XMP pdfxid:GTS_PDFXVersion prisotna in si protitaConformance = pxcUnknown in prazno množico IssuespxcUnknown
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;