PDFiumPas 文件

SaveAsPdfUa 方法

此 API 頁面會保留識別符號、簽名、程式碼區塊與 PDF 術語的原貌
元件: TPdf  ·  單元: PDFium
會在基礎 PDF 上套用增量更新,注入 PDF/UA 檔案格式標記,將目前文件儲存成符合 PDF/UA-1 的檔案

語法

function SaveAsPdfUa(const FileName: string): Boolean; overload;
function SaveAsPdfUa(const FileName: string; const Options: TPdfUaSaveOptions): Boolean; overload;

說明

SaveAsPdfUa 會先執行一般的 SaveAs,再在已儲存的位元組上疊加增量更新,將檔案提升為 PDF/UA-1 封存檔(ISO 14289-1:2014)。後處理會在儲存串流中注入四類標記

輸出在原始 PDF 結尾之前都會與基礎 SaveAs 的結果保持位元組完全一致,只會在尾端附加增量更新。即使不理解 PDF/UA 的舊版讀取器,仍會像一般 SaveAs 一樣正常顯示。兩個多載只差在設定傳遞方式:只有檔名的版本會使用 TPdfUaSaveOptions.Default,並自動從 FPDF_GetMetaTextFPDF_GetFileIdentifierFPDFCatalog_GetLanguage 補值;而 TPdfUaSaveOptions 版本則讓呼叫端覆寫 Title、Author、Subject、Keywords、Creator、Producer、CreationDate、ModDate、Language、DocumentId、InstanceId,以及 pdfuaid 的 Part / Amd / Corr 識別值

成功時回傳 True。若基礎 SaveAs 失敗,或增量更新無法附加(PDF 太短、trailer 無效、來源已加密),則回傳 False

備註

範例

// Simple PDF/UA-1 output, options auto-populated from the document
if Pdf1.SaveAsPdfUa('C:\Report.pdfua.pdf') then
  ShowMessage('Saved PDF/UA-1');

// With explicit options (Title overridden, language explicit)
var
  Opts: TPdfUaSaveOptions;
begin
  Opts := TPdfUaSaveOptions.Default;
  Opts.DocumentTitle := 'Quarterly Report Q3 2026';
  Opts.Language := 'en-US';
  Pdf1.SaveAsPdfUa('C:\Report.q3.pdfua.pdf', Opts);
end;

另請參閱

SaveAsPdfUaToStream, ValidatePdfUa, PdfUaConformance, SaveAsPdfA, IsTagged