PDFium Delphi Component Docs

SaveAsPdfEToStream Метод

Компонент: TPdf  ·  Модуль: PDFium
Вариант SaveAsPdfE в памяти — записывает вывод PDF/E-1 в любой 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 и описанием схемы расширения), переписывает Information-словарь документа, добавляя обязательную запись /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