function ValidatePdfX: TPdfXValidationResult;
ValidatePdfX обходить відкритий документ у пошуку маркерів файлового формату та вибраних правил вмісту, визначених родиною ISO 15930
pdfxid:GTS_PDFXVersion (і за бажанням pdfxid:GTS_PDFXConformance для PDF/X-1a / PDF/X-3)pdfaExtension:schemas для простору імен pdfxid (конвенція extension-schema XMP)/GTS_PDFXVersion у Document Information Dictionary з тим самим значенням, що й властивість XMP/OutputIntents у каталозі, що посилається на словник OutputIntent із вбудованим профілем ICC через /DestOutputProfile/Title у словнику Info (PDF/X наполегливо рекомендує)/ID у trailer і відсутність /Encrypt (шифрування заборонене всіма версіями PDF/X)xmp:CreateDate і xmp:ModifyDate в XMP для парності Info / XMPРезультатом є запис TPdfXValidationResult:
pxc1a (збігається з "PDF/X-1"), pxc3 ("PDF/X-3"), pxc4 ("PDF/X-4"), pxcNone (маркера PDF/X немає) або pxcUnknown (маркер наявний, але не розпізнаний)TPdfXValidationIssues, що покриває метадані, парність словника Info, форму OutputIntent, шифрування, заборонений активний вміст, вбудовування шрифтів, обмеження прозорості й колірних просторів, наявність TrimBox, геометрію page-box і стан trappedConformance є справжнім рівнем PDF/X, а Issues порожнійValidatePdfX — read-only інспекція. Застосовуйте її, перш ніж
відправляти PDF/X-вміст у препрес-процес, щоб виявити невідповідність
для оператора. Для поширеного запиту «який це рівень PDF/X?», що
не потребує списку проблем, надайте перевагу легшій
властивості PdfXConformance
pvxiInfoVersionMismatch лише коли обидва Info /GTS_PDFXVersion і XMP pdfxid:GTS_PDFXVersion наявні та розходятьсяConformance = pxcUnknown і порожнім набором 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;