PDFium Delphi Component Docs

SaveAsPdfAToStream Méthode

Composant: TPdf  ·  Unit: PDFium
Variante en mémoire de SaveAsPdfA — écrit la sortie PDF/A-1b dans tout TStream sans mise en scène sur disque

Syntax

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

Description

SaveAsPdfAToStream est le pendant de streaming de SaveAsPdfA — il produit la même sortie PDF/A-1b, mais écrit le résultat dans n’importe quel TStream positionnable fourni par l’appelant au lieu de passer par un fichier temporaire. Utile pour les pipelines de téléversement HTTP, les colonnes BLOB, les couches de cache en mémoire, les conteneurs d’archive (ZIP / TAR), ou tout flux de travail où les octets PDF/A n’ont jamais besoin de toucher le disque

La logique de post-traitement est identique à SaveAsPdfA(FileName, Options) : le SaveAs de base s’exécute d’abord, puis une mise à jour incrémentale injecte le flux de métadonnées XMP (qui ponte le dictionnaire Document Information en forme XMP selon ISO 19005-1 6.7.3 / Cor.1 Tableau 1 et incorpore la description de schéma d’extension pdfaid requise par 6.7.8), l’OutputIntent référençant un profil ICC intégré (sRGB par défaut, personnalisé via Options.IccProfileData), une mise à jour du catalogue qui les lie ensemble, et un tableau /ID de trailer requis par 6.1.3. Les champs d’options laissés vides sont auto-remplis depuis FPDF_GetMetaText et FPDF_GetFileIdentifier afin que l’appelant typique ne définisse que Conformance

Renvoie True en cas de succès. Le flux de sortie est laissé à la position après le dernier octet écrit. Renvoie False si le SaveAs de base a échoué ou si le post-traitement PDF/A n’a pas pu être attaché (généralement parce que le PDF source était chiffré, ce que PDF/A interdit)

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