PDFium Delphi Component Docs

SaveAsPdfAToStream Método

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

Syntax

function SaveAsPdfAToStream(Stream: TStream; const Options: TPdfASaveOptions): Boolean;

Description

SaveAsPdfAToStream es la contrapartida de streaming de SaveAsPdfA — produce la misma salida PDF/A-1b, pero escribe el resultado en cualquier TStream posicionable que proporcione el llamador en lugar de pasar por un archivo temporal. Útil para canalizaciones de subida HTTP, columnas BLOB, capas de caché en memoria, contenedores de archivo (ZIP / TAR) o cualquier flujo de trabajo donde los bytes PDF/A nunca necesiten tocar disco.

La lógica de posprocesado es idéntica a SaveAsPdfA(FileName, Options): primero se ejecuta el SaveAs base, luego una actualización incremental inyecta el flujo de metadatos XMP (que tiende un puente del Document Information Dictionary a la forma XMP según ISO 19005-1 6.7.3 / Cor.1 Tabla 1 e incrusta la descripción del esquema de extensión pdfaid exigida por 6.7.8), el OutputIntent que referencia un perfil ICC incrustado (sRGB por defecto, personalizado mediante Options.IccProfileData), una actualización del catalog que los enlaza y un array /ID de tráiler requerido por 6.1.3. Los campos de Options dejados vacíos se autorrellenan desde FPDF_GetMetaText y FPDF_GetFileIdentifier de modo que el llamador habitual solo establece Conformance.

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 PDF/A no pudo adjuntarse (normalmente porque el PDF de origen estaba cifrado, lo cual PDF/A prohíbe).

Remarks

Example

var
  Stream: TMemoryStream;
  Opts: TPdfASaveOptions;
begin
  Stream := TMemoryStream.Create;
  try
    Opts := Default(TPdfASaveOptions);
    Opts.Conformance := pac1b;
    if Pdf1.SaveAsPdfAToStream(Stream, Opts) then
    begin
      Stream.Position := 0;
      UploadToArchive(Stream);
    end;
  finally
    Stream.Free;
  end;
end;

See Also

SaveAsPdfA, ValidatePdfA, PdfAConformance, SaveAs