PDFium Delphi Component Docs

เมธอด InspectPdfAMetadata

Component: TPdf  ·  Unit: PDFium
รายงานความเทียบเท่าระหว่าง Info กับ XMP ตาม ISO 19005-1 แบบเป๊ะสำหรับเอกสารที่ใช้งานอยู่

Syntax

function InspectPdfAMetadata: TPdfAMetadataReport;

ResultTPdfAMetadataReport ที่บรรจุสถานะมี XMP หรือไม่ ข้อความ parse error ฟิลด์ที่ไม่ตรงกัน และการเปรียบเทียบรายฟิลด์ 8 คู่

Description

เมธอดอ่าน Title, Author, Subject, Keywords, Creator, Producer, CreationDate และ ModDate ผ่าน PDFium ทำให้สตริงที่เข้ารหัส PDFDocEncoding และ UTF-16 ถอดรหัส Unicode ด้วยวิธีเดียวกับที่เอกสารที่เปิดอยู่ใช้

การตรวจ dictionary ดิบจะบันทึกว่า key ของ Info แต่ละตัวมีอยู่หรือไม่แยกจากค่าของมัน สตริงว่างที่ระบุไว้ชัดเจนจึงไม่ถูกนับเป็น key ที่ขาดหาย

Title และ Subject ต้องมีค่า rdf:Alt ที่ติดแท็ก x-default Author ต้องมี rdf:Seq ที่มีค่าเดียวพอดี ส่วน mapping อื่นต้องเป็น simple property ที่หาเจอจาก namespace URI และ local name

ค่าข้อความเปรียบเทียบกันที่ Unicode code point แบบเป๊ะ ส่วนวันที่เปรียบเทียบเป็นองค์ประกอบเวลาท้องถิ่นเมื่อไม่มีฝั่งใดระบุ timezone หรือเป็นช่วงเวลา UTC เมื่อทั้งสองฝั่งมี timezone

TPdfAMetadataState แยกสถานะต่าง ๆ ได้แก่ ไม่ต้องระบุ เทียบเท่ากัน ขาด XMP ชนิด RDF ผิด ค่าไม่ตรงกัน วันที่ Info ไม่ถูกต้อง และวันที่ XMP ไม่ถูกต้อง

เมธอดนี้อ่านอย่างเดียว ต้องมีเอกสารที่ active อยู่ และไม่แก้ไขสถานะของ PDFium หรือเอกสารต้นทาง

Example

var Report: TPdfAMetadataReport;
Report := Pdf1.InspectPdfAMetadata;
if Report.HasXmpPacket and not Report.IsEquivalent then
  ShowMessage(IntToStr(Length(Report.Comparisons)) + ' fields inspected');

See Also

NormalizePdfAMetadata, ValidatePdfA, ReadXmpPacket, FPdfXmp