PDFium Delphi Component Docs

SaveAsPdfEToStream метод

Component: TPdf  ·  Unit: PDFium
Пам'ятковий варіант — записує вихід у будь-який TStream без проміжного запису на диск

Syntax

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

Description

SaveAsPdfEToStream є потоковим аналогом SaveAsPdfE — він створює той самий вивід PDF/E-1, але записує результат у будь-який наданий викликувачем TStream із підтримкою позиціонування. Корисно для інтеграції інженерних робочих процесів, де дані PDF/E надсилаються прямо в системи PLM / PDM, колонки BLOB, архівні контейнери або конвеєри HTTP-вивантаження без торкання диска

Логіка постобробки ідентична SaveAsPdfE(FileName, Options): спочатку виконується базовий SaveAs, потім інкрементне оновлення вставляє потік метаданих XMP (з pdfe:ISO_PDFEVersion та описом схеми розширення), переписує Document Information Dictionary, щоб додати обов’язковий запис /ISO_PDFEVersion (PDF/E-1), оновлює каталог для посилання на новий XMP і випускає трейлер зі свіжим масивом /ID. Поля Options, залишені порожніми, автоматично заповнюються з читачів PDFium (FPDF_GetMetaText, FPDF_GetFileIdentifier), тож типовому викликувачеві досить перевизначити поле Version для нетипових значень Part / Amd / Corr

Повертає True у разі успіху. Вихідний потік лишається на позиції після останнього записаного байта. Повертає False, якщо базовий SaveAs завершився невдало або якщо постобробку не вдалося додати

Remarks

Example

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;

See Also

SaveAsPdfE, ValidatePdfE, PdfEConformance, SaveAs