function SaveAsPdfEToStream(Stream: TStream; const Options: TPdfESaveOptions): Boolean;
SaveAsPdfEToStream jest strumieniowym odpowiednikiem
SaveAsPdfE — daje ten sam wynik PDF/E-1, ale zapisuje
rezultat do dowolnego seekowalnego TStream przekazanego przez
wywołującego zamiast przechodzić przez plik tymczasowy Przydaje się
przy integracji przepływów inżynierskich, gdzie ładunki PDF/E są
przekazywane wprost do systemów PLM / PDM, kolumn BLOB, kontenerów
archiwów albo potoków wysyłki HTTP bez dotykania dysku
Logika postprocessingu jest identyczna jak w
SaveAsPdfE(FileName, Options): najpierw działa bazowy SaveAs,
potem przyrostowa aktualizacja wstrzykuje strumień metadanych XMP
(pdfe:ISO_PDFEVersion i opis schematu rozszerzeń),
przepisuje Document Information Dictionary, aby dodać obowiązkowy
wpis /ISO_PDFEVersion (PDF/E-1), aktualizuje katalog, aby
wskazywał nowe XMP, i emituje trailer z nową tablicą /ID
Pola Options pozostawione puste są automatycznie
uzupełniane z czytelników PDFium (FPDF_GetMetaText,
FPDF_GetFileIdentifier), więc typowy wywołujący musi tylko
nadpisać pole Version dla innych wartości Part / Amd / Corr
Zwraca True po sukcesie Strumień wyjściowy pozostaje na
pozycji za ostatnim zapisanym bajtem Zwraca False, jeśli
bazowy SaveAs się nie powiódł albo jeśli postprocessing nie mógł zostać
dołączony
/ISO_PDFEVersion Istniejące wartości wersji PDF/E są zastępowaneTMemoryStream w potokach w pamięci; wynikowe bajty można przekazać wprost do content store
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;