function InspectPdfAMetadata: TPdfAMetadataReport;
| Result | TPdfAMetadataReport에 XMP 가용성, 파싱 오류 텍스트, 불일치 필드, 필드별 비교 8개가 담깁니다 |
이 메서드는 PDFium을 통해 Title, Author, Subject, Keywords, Creator, Producer, CreationDate, ModDate를 읽으므로 PDFDocEncoding과 UTF-16 문자열이 살아 있는 문서와 같은 Unicode 디코딩을 사용합니다
원시 딕셔너리 점검은 각 Info 키의 존재 여부를 값과 독립적으로 기록하므로, 명시적으로 빈 문자열이 지정된 경우 키가 없는 것으로 취급되지 않습니다
Title과 Subject는 x-default로 태그된 rdf:Alt 값을 요구하고, Author는 값을 정확히 하나 담은 rdf:Seq를 요구하며, 나머지 매핑은 네임스페이스 URI와 로컬 이름으로 찾은 단순 속성을 요구합니다
텍스트 값은 Unicode 코드 포인트로 정확히 비교합니다. 날짜는 어느 쪽에도 시간대가 없으면 로컬 구성 요소로, 양쪽 모두 시간대가 있으면 UTC 시점으로 비교합니다
TPdfAMetadataState는 불필요, 동등, XMP 없음, 잘못된 RDF 타입, 값 불일치, 잘못된 Info 날짜, 잘못된 XMP 날짜 상태를 구분합니다
이 메서드는 읽기 전용이며 활성 문서가 필요하고 PDFium이나 소스 상태를 수정하지 않습니다
var Report: TPdfAMetadataReport;
Report := Pdf1.InspectPdfAMetadata;
if Report.HasXmpPacket and not Report.IsEquivalent then
ShowMessage(IntToStr(Length(Report.Comparisons)) + ' fields inspected');