PDFium Delphi Component Docs

SaveAsPdfA Méthode

Composant: TPdf  ·  Unit: PDFium
Enregistre le document courant en tant que fichier conforme PDF/A-1b en post-traitant le PDF de base avec une mise à jour incrémentielle qui injecte un flux de métadonnées XMP, un OutputIntent ICC sRGB et un catalogue de document mis à jour

Syntax

function SaveAsPdfA(const FileName: string; Conformance: TPdfAConformance = pac1b): Boolean; overload;
function SaveAsPdfA(const FileName: string; const Options: TPdfASaveOptions): Boolean; overload;

Description

SaveAsPdfA exécute d'abord SaveAs, puis superpose une mise à jour incrémentielle sur les octets enregistrés afin de promouvoir le fichier en archive PDF/A (PDF/A-1b par défaut ; ISO 19005-1, avec Cor.1:2007). Le post-traitement injecte quatre éléments dans le flux enregistré :

La sortie reste octet pour octet identique au résultat de base de SaveAs jusqu'à la fin du PDF original ; seule la mise à jour incrémentielle est ajoutée. Les lecteurs existants qui ne comprennent pas PDF/A affichent tout de même le fichier exactement comme SaveAs le ferait. Les deux surcharges ne diffèrent que par la façon dont la conformité et les options sont transmises — la forme TPdfAConformance est un raccourci pour le cas courant (pac1b) ; la forme TPdfASaveOptions prend un record avec toute la surface de configuration, y compris des remplacements facultatifs pour Title, Author, Subject, Keywords, Creator, Producer, CreationDate, ModDate, DocumentId et InstanceId. Les champs laissés vides sont renseignés automatiquement à partir de FPDF_GetMetaText / FPDF_GetFileIdentifier, de sorte que l'appelant typique n'a pas besoin de définir autre chose que Conformance

La valeur Conformance sélectionne la norme et le niveau cibles. PDF/A-1 (ISO 19005-1) propose pac1b et pac1a ; PDF/A-2 (ISO 19005-2) et PDF/A-3 (ISO 19005-3) ajoutent les niveaux b, u et a sous la forme de pac2b / pac2u / pac2a et pac3b / pac3u / pac3a. Le pdfaid:part injecté (1, 2 ou 3) et le pdfaid:conformance (A, B ou U) suivent la valeur demandée, tandis que l'OutputIntent conserve le sous-type GTS_PDFA1 que ISO 19005-2 retient pour chaque partie. Comme le post-processeur ne peut pas synthétiser de structure logique, une demande de niveau A (pac1a / pac2a / pac3a) est automatiquement rétrogradée au niveau B correspondant lorsque le PDF source ne contient pas la structure Tagged PDF requise par ce niveau — ainsi, le fichier enregistré ne prétend jamais à tort être de niveau A

Renvoie True en cas de succès. Renvoie False si SaveAs de base a échoué, si la mise à jour incrémentielle n'a pas pu être attachée (PDF trop court, trailer invalide) ou si les données du profil ICC ont été fournies mais ont échoué à la validation

Remarks

Example

// Simple PDF/A-1b output using the bundled sRGB profile
if Pdf1.SaveAsPdfA('C:\Report.pdfa.pdf') then
  ShowMessage('Saved PDF/A-1b');

// With a custom ICC profile
var
  Opts: TPdfASaveOptions;
begin
  Opts := Default(TPdfASaveOptions);
  Opts.Conformance := pac1b;
  Opts.IccProfileData := TFile.ReadAllBytes('C:\Profiles\Coated.icc');
  Pdf1.SaveAsPdfA('C:\Report.cmyk.pdfa.pdf', Opts);
end;

See Also

SaveAsPdfAToStream, ValidatePdfA, PdfAConformance, SaveAs