property CreationDate: WString; // read only
CreationDate는 문서 Information 딕셔너리(PDF 1.7 스펙 14.3.3절)의
/CreationDate 항목을 PDF 날짜 리터럴 그대로 반환합니다. 값은
D:YYYYMMDDHHmmSSOHH'mm' 형식입니다 — 예컨대
D:20231201090000Z는 2023년 12월 1일 09:00 UTC,
D:20260514103015+08'00'는 UTC+08:00 기준 10:30:15를 뜻합니다
(PDF 1.7 스펙 7.9.4절)
Active가 False이거나, 문서에 Info 딕셔너리가 없거나,
/CreationDate 항목이 기록되지 않았으면 문자열은 비어 있습니다. 대부분의
작성 도구는 PDF를 처음 만든 시점에 이 타임스탬프를 기록한 뒤 건드리지 않고, 이후
편집은 ModifiedDate에 반영됩니다. CreationDate와 ModifiedDate를 비교하면
초기 내보내기 이후 PDF가 편집되었는지 빠르게 판별할 수 있습니다
날짜 문자열을 해석하려면 D: 접두사를 떼어 내고 고정폭 필드를 디코딩한 뒤
뒤따르는 시간대 오프셋을 처리해야 합니다(어포스트로피는 리터럴 문법의 일부입니다)
PDFium Delphi Component는 원본 텍스트를 그대로 노출하므로 호출자가 원하는 방식으로 변환하면
됩니다. TDateTime으로 만들거나, 로캘 규칙에 맞게 포맷하거나, 생성 도구들이
쓰는 다양한 축약을 처리하는 정규식 / 파서에 넘기면 됩니다
Z(UTC), +HH'mm',
-HH'mm'이거나 아예 없을 수도 있습니다 — 없으면
“현지 시간, 오프셋 미상”으로 취급하세요/ModDate와 동일한 /CreationDate를
만들어 넣습니다 — 두 값의 차이를 편집 증거로 삼지 마세요FormatSettings를 써서
DateTimeToStr로 포맷하세요
var Created, Modified: WString;
Created := Pdf1.CreationDate;
Modified := Pdf1.ModifiedDate;
if (Created <> '') and (Created <> Modified) then
Log.Add('Document edited since creation');