PDFiumPas 文件

SaveAs 方法

此 API 頁面會保留識別符號、簽名、程式碼區塊與 PDF 術語的原貌
元件: TPdf  ·  單元: PDFium
將 PDF 文件複本儲存到指定串流。若 PdfVersion 為 pv13 到 pv17,已儲存的輸出會依目標版本進行正規化與驗證,包含增量輸出中既有的 catalog /Version 覆寫。驗證器涵蓋 PDF 1.1 到 1.7 / ISO 32000-1 的完整功能時間軸:filters(FlateDecode、JBIG2Decode、JPXDecode)、object 與 xref streams、transparency(SMask、ca/CA、blend modes)、Tagged PDF(StructTreeRoot、MarkInfo)、色彩空間(ICCBased、DeviceN)、頁面框(BleedBox/TrimBox/ArtBox)、output intents、optional content、AcroForm、CID/Type 0 與 OpenType fonts、AES 與 AES-256 encryption(CFM AESV2/AESV3)、所有受版本限制的 annotation subtypes(Widget、Sound、Movie、FreeText、Line、Square、Circle、Highlight、Underline、StrikeOut、Stamp、Ink、Popup、FileAttachment、TrapNet、Squiggly、PrinterMark、Polygon、PolyLine、Caret、Screen、Watermark、3D、Redact)、受版本限制的 action types(SubmitForm、ResetForm、ImportData、Hide、Named、JavaScript、Trans、SetState、Rendition、GoToE、GoTo3DView)以及 catalog entries(Perms、Legal、Collection、Requirements、NeedsRendering),超出所選目標版本的內容都會引發 EPdfError。若文件沒有既有的 OpenAction 且目標版本支援,儲存後的 PDF 會以第一頁與 Fit Height 縮放開啟。試用版在儲存時會套用試用浮水印

語法

function SaveAs(Stream: TStream; Option: TSaveOption = saNone; PdfVersion: TPdfVersion = pvUnknown): Boolean;

StreamTStream,會把 PDF 資料寫入其中
OptionTSaveOption,儲存模式,soNone 代表完整重寫,soIncremental 代表把增量更新附加到檔案尾端
PdfVersionTPdfVersion,目標 PDF 版本,可傳入 pvUnknown 來保留目前版本

 

function SaveAs(const FileName: string; Option: TSaveOption = saNone; PdfVersion: TPdfVersion = pvUnknown): Boolean;

FileNamestring,輸出檔案路徑,檔案會建立或覆寫
OptionTSaveOption,儲存模式,soNone 代表完整重寫,soIncremental 代表把增量更新附加到檔案尾端
PdfVersionTPdfVersion,目標 PDF 版本,可傳入 pvUnknown 來保留目前版本

回傳值

文件儲存成功時回傳 True,失敗時回傳 False

說明

將目前文件儲存到檔案路徑或 TStreamOption 參數會控制儲存模式,soNone 代表完整重寫檔案,soIncremental 則只附加自上次儲存後變更的內容,輸出會比較小,但連續儲存多次後檔案也會逐漸變大

PdfVersion 參數會指定輸出的 PDF 版本,傳入 pvUnknown 可保留文件原本的版本

Compressed 屬性會控制儲存時是否套用 object-stream 壓縮

範例

// Save to file
Pdf.SaveAs('output.pdf');

// Save to stream
var MS: TMemoryStream;
MS := TMemoryStream.Create;
try
  Pdf.SaveAs(MS);
  MS.SaveToFile('output.pdf');
finally
  MS.Free;
end;

另請參閱

LoadDocument, Compressed, CreateDocument