PDFium Delphi Component Docs

SaveAsPdfAToStream Metodo

Componente: TPdf  ·  Unità: PDFium
Variante in memoria di SaveAsPdfA, scrive l'output PDF/A-1b in qualsiasi TStream senza passare dal disco

Syntax

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

Description

SaveAsPdfAToStream è la controparte streaming di SaveAsPdfA — produce lo stesso output PDF/A-1b, ma scrive il risultato in qualsiasi TStream seekable fornito dal chiamante invece di passare da un file temporaneo. Utile per pipeline di upload HTTP, colonne BLOB, layer di cache in memoria, contenitori di archivio (ZIP / TAR), o qualsiasi flusso di lavoro in cui i byte PDF/A non debbano mai toccare il disco

La logica di post-processing è identica a quella di SaveAsPdfA(FileName, Options): prima gira il SaveAs base, poi un aggiornamento incrementale inietta lo stream di metadati XMP (che travasa il Document Information Dictionary in forma XMP secondo ISO 19005-1 6.7.3 / Cor.1 Tabella 1 e incorpora la descrizione dello schema di estensione pdfaid richiesta da 6.7.8), l'OutputIntent che referenzia un profilo ICC incorporato (sRGB per predefinito, personalizzabile tramite Options.IccProfileData), un aggiornamento del catalogo che collega il tutto, e un array /ID nel trailer richiesto da 6.1.3. I campi Options lasciati vuoti vengono auto-popolati da FPDF_GetMetaText e FPDF_GetFileIdentifier così il chiamante tipico imposta solo Conformance

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 PDF/A non ha potuto essere applicato (tipicamente perché il PDF sorgente era crittografato, cosa che PDF/A vieta)

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