PDFiumPas 文件

SaveAsPdfEToStream 方法

此 API 頁面會保留識別符號、簽名、程式碼區塊與 PDF 術語的原貌
元件: TPdf  ·  單元: PDFium
SaveAsPdfE 的記憶體版本,會把 PDF/E-1 輸出直接寫入任何 TStream,不需要先經過磁碟

語法

function SaveAsPdfEToStream(Stream: TStream; const Options: TPdfESaveOptions): Boolean;

說明

SaveAsPdfEToStreamSaveAsPdfE 的串流對應版本,會產生相同的 PDF/E-1 輸出,但把結果寫入呼叫端提供的任何可搜尋串流。這很適合工程流程整合,例如把 PDF/E 負載直接送進 PLM / PDM 系統、BLOB 欄位、封存容器或 HTTP 上傳管線,而不用碰磁碟

後處理邏輯與 SaveAsPdfE(FileName, Options) 完全一致,會先執行基礎的 SaveAs,再透過增量更新注入 XMP metadata stream(包含 pdfe:ISO_PDFEVersion 與 extension schema description)、重寫 Document Information Dictionary 以加入必要的 /ISO_PDFEVersion (PDF/E-1) 項目、更新 catalog 參照新的 XMP,並輸出帶有新 /ID array 的 trailer。Options 中留白的欄位會由 PDFium readers(FPDF_GetMetaTextFPDF_GetFileIdentifier)自動補值,所以一般呼叫端通常只需要在非預設的 Part / Amd / Corr 值時覆寫 Version 欄位

成功時回傳 True。輸出串流會停在最後一個寫入位元組之後的位置。若基礎 SaveAs 失敗,或後處理無法附加,則回傳 False

備註

範例

var
  Stream: TMemoryStream;
  Opts: TPdfESaveOptions;
begin
  Stream := TMemoryStream.Create;
  try
    Opts := TPdfESaveOptions.Default;
    Opts.Producer := 'CAD-Workflow 2026';
    if Pdf1.SaveAsPdfEToStream(Stream, Opts) then
    begin
      Stream.Position := 0;
      PushToPLM(Stream);
    end;
  finally
    Stream.Free;
  end;
end;

另請參閱

SaveAsPdfE, ValidatePdfE, PdfEConformance, SaveAs