function ValidatePdfE: TPdfEValidationResult;
ValidatePdfE는 열려 있는 문서를 훑으며 ISO 24517-1:2008이 정의한 PDF/E-1 파일 형식 마커를 찾습니다:
pdfe:ISO_PDFEVersion을 담은 XMP 메타데이터 스트림 (§5 + §13.3)pdfaExtension:schemas 설명 (XMP Specification 2004의 확장 스키마 요구 사항, §13.1을 통해 상속)/ISO_PDFEVersion (§5 SHALL)/ID 배열 (§6.2)xmp:CreateDate와 xmp:ModifyDate 항목 (§13.1을 통해 ISO 19005-1 §6.7에서 상속)결과는 TPdfEValidationResult 레코드입니다:
pec1(PDF/E-1 식별자를 찾았고 비어 있지 않음), pecNone(PDF/E 마커 없음), pecUnknown(파싱 실패 또는 마커는 있지만 값이 없음)TPdfEValidationIssues 집합입니다: pveiMissingXmpMetadata, pveiMissingPdfEIdentifier, pveiMissingExtensionSchema, pveiMissingInfoVersionEntry, pveiInfoVersionMismatch, pveiMissingTrailerId, pveiMissingXmpDatesConformance가 실제 PDF/E 수준이고 Issues가 비어 있으면 True를 반환합니다ValidatePdfE는 읽기 전용 검사입니다 — 문서를 수정하지 않으며 반복 호출해도
안전합니다. PDF/E 페이로드를 엔지니어링 아카이브에 넣기 전에 호출해 이 라이브러리가
탐지할 수 있는 파일 형식 수준의 비적합 사항을 미리 드러내세요. 이슈 목록이 필요 없는
흔한 "이 문서가 PDF/E-1인가?" 확인이라면 더 가벼운 PdfEConformance
속성을 사용하는 편이 좋습니다
pveiInfoVersionMismatch를 보고합니다. Info 항목이 없으면 검증기는 pveiMissingInfoVersionEntry만 보고합니다 (거짓 mismatch 없음)Conformance = pecUnknown이고 Issues 집합이 빈 레코드를 반환합니다
uses System.TypInfo;
var
Outcome: TPdfEValidationResult;
Issue: TPdfEValidationIssue;
begin
Pdf1.FileName := 'C:\Incoming\drawing.pdf';
Pdf1.Active := True;
Outcome := Pdf1.ValidatePdfE;
Memo1.Lines.Add('Level: ' + GetEnumName(TypeInfo(TPdfEConformance),
Ord(Outcome.Conformance)));
for Issue in Outcome.Issues do
Memo1.Lines.Add('- ' + GetEnumName(TypeInfo(TPdfEValidationIssue), Ord(Issue)));
end;