PDFiumPas 說明文件

SaveAsPdfA 方法

此 API 頁面保留識別符號、簽名、程式碼區塊與 PDF 術語原樣
元件: TPdf  ·  單元: PDFium
會在基底 PDF 上加上遞增更新,將目前文件存成相容 PDF/A-1b 的檔案,並寫入 XMP 中繼資料串流、sRGB ICC OutputIntent 與更新後的文件目錄

語法

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,後處理會往輸出串流塞入四項內容

輸出內容在原始 PDF 結尾之前都會和基底 SaveAs 的結果完全一致,只有遞增更新會被接在後面,不懂 PDF/A 的舊讀者仍會和一般 SaveAs 一樣正常顯示,兩個 overload 的差別只在相容等級與選項怎麼傳入,TPdfAConformance 形式只是常見情境的簡寫,也就是 pac1b,而 TPdfASaveOptions 形式則接收完整設定記錄,包含 Title、Author、Subject、Keywords、Creator、Producer、CreationDate、ModDate、DocumentId 與 InstanceId 的可選覆寫,留白欄位會由 FPDF_GetMetaTextFPDF_GetFileIdentifier 自動補齊,所以一般呼叫只需要設定 Conformance

Conformance 值會選定目標標準與等級,PDF/A-1(ISO 19005-1)提供 pac1bpac1a,PDF/A-2(ISO 19005-2)與 PDF/A-3(ISO 19005-3)則再加入 pac2b / pac2u / pac2apac3b / 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

注意事項