function SaveAsPdfEToStream(Stream: TStream; const Options: TPdfESaveOptions): Boolean;
SaveAsPdfEToStream è la controparte streaming di
SaveAsPdfE — produce lo stesso output PDF/E-1
ma scrive il risultato in qualsiasi TStream seekable fornito dal chiamante
Utile per l'integrazione nei flussi di lavoro di ingegneria in cui i payload PDF/E vengono
inviati direttamente a sistemi PLM / PDM, colonne BLOB, contenitori di
archivio o pipeline di upload HTTP senza toccare il disco
La logica di post-processing è identica a quella di
SaveAsPdfE(FileName, Options): prima gira il SaveAs base,
poi un aggiornamento incrementale inietta lo stream di metadati XMP
(con pdfe:ISO_PDFEVersion e la descrizione dello schema di estensione),
riscrive il Document Information Dictionary per aggiungere la voce obbligatoria
/ISO_PDFEVersion (PDF/E-1), aggiorna il catalogo
perché referenzi il nuovo XMP, ed emette un trailer con un nuovo array
/ID. I campi Options lasciati vuoti vengono auto-popolati dai lettori di PDFium
(FPDF_GetMetaText, FPDF_GetFileIdentifier),
così un chiamante tipico deve intervenire sul campo Version solo per
valori Part / Amd / Corr non predefiniti
Restituisce True in caso di successo. Lo stream di output resta
posizionato dopo l'ultimo byte scritto. Restituisce False
se il SaveAs base è fallito o se il post-processing non ha potuto
essere applicato
/ISO_PDFEVersion. I valori di versione PDF/E esistenti vengono sostituiti
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;