function SaveAsPdfA(const FileName: string; Conformance: TPdfAConformance = pac1b): Boolean; overload;
function SaveAsPdfA(const FileName: string; const Options: TPdfASaveOptions): Boolean; overload;
SaveAsPdfA 會先執行一般的 SaveAs,再在已儲存的位元組後方疊加遞增更新,把檔案提升成 PDF/A 封存檔,預設為 PDF/A-1b,也就是 ISO 19005-1 搭配 Cor.1:2007,後處理會往輸出串流塞入四項內容
pdfaid:part = 1、pdfaid:conformance = B,並依 ISO 19005-1 6.7.3 把每個 Document Information Dictionary 項目對應成 XMP 等價值,例如 Title → dc:title、Author → dc:creator、Subject → dc:description、Keywords → pdf:Keywords、Creator → xmp:CreatorTool、Producer → pdf:Producer、CreationDate → xmp:CreateDate、ModDate → xmp:ModifyDate,並嵌入 6.7.8 / Cor.1 要求的 pdfaid extension schema 說明TPdfASaveOptions.IccProfileData 提供/ID 陣列,這是 ISO 19005-1 6.1.3 的必要項目,若來源 PDF 已有檔案識別碼,就沿用現有的 16-byte permanent 與 changing IDs,否則會從來源位元組推導出固定的 16-byte fallback ID輸出內容在原始 PDF 結尾之前都會和基底 SaveAs 的結果完全一致,只有遞增更新會被接在後面,不懂 PDF/A 的舊讀者仍會和一般 SaveAs 一樣正常顯示,兩個 overload 的差別只在相容等級與選項怎麼傳入,TPdfAConformance 形式只是常見情境的簡寫,也就是 pac1b,而 TPdfASaveOptions 形式則接收完整設定記錄,包含 Title、Author、Subject、Keywords、Creator、Producer、CreationDate、ModDate、DocumentId 與 InstanceId 的可選覆寫,留白欄位會由 FPDF_GetMetaText 與 FPDF_GetFileIdentifier 自動補齊,所以一般呼叫只需要設定 Conformance
Conformance 值會選定目標標準與等級,PDF/A-1(ISO 19005-1)提供 pac1b 與 pac1a,PDF/A-2(ISO 19005-2)與 PDF/A-3(ISO 19005-3)則再加入 pac2b / pac2u / pac2a 與 pac3b / pac3u / pac3a,注入的 pdfaid:part 會依要求變成 1、2 或 3,而 pdfaid:conformance 會依要求變成 A、B 或 U,OutputIntent 仍維持 ISO 19005-2 為各版本保留的 GTS_PDFA1 subtype,因為後處理器無法憑空生出邏輯結構,所以當來源缺少該等級需要的 tagged-PDF 結構時,Level A 要求(pac1a / pac2a / pac3a)會自動降回對應的 Level B,這樣輸出的檔案就不會誤宣稱自己是 Level A
成功時回傳 True,若基底 SaveAs 失敗、遞增更新無法附加,或來源文件已加密而導致 PDF/A 後處理不能完成,則回傳 False
/Encrypt key,內部基底儲存會以 saRemoveSecurity 執行ValidatePdfA 檢查結果,把仍然存在的問題帶回給操作人員