PDFium Delphi Component Docs

SaveAsPdfEToStream Método

Componente: TPdf  ·  Unidad: PDFium
Variante en memoria de SaveAsPdfE — escribe la salida PDF/E-1 en cualquier TStream sin pasar por disco

Syntax

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

Description

SaveAsPdfEToStream es la contrapartida de streaming de SaveAsPdfE — produce la misma salida PDF/E-1 pero escribe el resultado en cualquier TStream posicionable que proporcione el llamador. Útil para la integración de flujos de trabajo de ingeniería donde las cargas PDF/E se envían directamente a sistemas PLM / PDM, columnas BLOB, contenedores de archivo o canalizaciones de subida HTTP sin tocar disco.

La lógica de posprocesado es idéntica a SaveAsPdfE(FileName, Options): primero se ejecuta el SaveAs base, luego una actualización incremental inyecta el flujo de metadatos XMP (con pdfe:ISO_PDFEVersion y la descripción del esquema de extensión), reescribe el Document Information Dictionary para añadir la entrada obligatoria /ISO_PDFEVersion (PDF/E-1), actualiza el catalog para referenciar el XMP nuevo y emite un tráiler con un array /ID renovado. Los campos de Options dejados vacíos se autorrellenan desde los lectores de PDFium (FPDF_GetMetaText, FPDF_GetFileIdentifier), de modo que un llamador habitual solo necesita sobrescribir el campo Version para valores no predeterminados de Part / Amd / Corr.

Devuelve True en caso de éxito. El flujo de salida queda en la posición tras el último byte escrito. Devuelve False si el SaveAs base falló o si el posprocesado no pudo adjuntarse.

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