function SaveAsPdfEToStream(Stream: TStream; const Options: TPdfESaveOptions): Boolean;
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 завершився невдало або якщо постобробку
не вдалося додати
/ISO_PDFEVersion. Наявні значення версії PDF/E замінюються
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;