Docs de PDFiumPas

SaveAsPdfA Método

Esta entrada API conserva identificadores, firmas, bloques de código y términos PDF en su forma original.
Componente: TPdf  ·  Unidad: PDFium
Guarda el documento actual como un archivo conforme a PDF/A-1b mediante el posprocesado del PDF base con una actualización incremental que inyecta un flujo de metadatos XMP, un OutputIntent ICC sRGB y un catálogo de documento actualizado

Sintaxis

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

Descripción

SaveAsPdfA realiza primero el SaveAs normal y después superpone una actualización incremental sobre los bytes guardados que promociona el archivo a un archivo PDF/A (PDF/A-1b por defecto; ISO 19005-1, con Cor.1:2007). El posprocesado inyecta cuatro cosas en el flujo guardado:

La salida permanece idéntica en bytes al resultado base de SaveAs hasta el final del PDF original; solo se añade la actualización incremental. Los lectores que no entienden PDF/A siguen renderizando el archivo exactamente como lo haría el SaveAs normal. Las dos sobrecargas difieren solo en cómo se pasan la conformidad / las opciones — la forma TPdfAConformance es un atajo para el caso común (pac1b); la forma TPdfASaveOptions toma un registro con toda la superficie de configuración, incluidas anulaciones opcionales para Title, Author, Subject, Keywords, Creator, Producer, CreationDate, ModDate, DocumentId e InstanceId. Los campos que se dejan vacíos se autocompletan desde FPDF_GetMetaText / FPDF_GetFileIdentifier, así que el llamador típico no necesita fijar ningún campo salvo Conformance

El valor Conformance selecciona el estándar y nivel de destino. PDF/A-1 (ISO 19005-1) ofrece pac1b y pac1a; PDF/A-2 (ISO 19005-2) y PDF/A-3 (ISO 19005-3) añaden los niveles b, u y a como pac2b / pac2u / pac2a y pac3b / pac3u / pac3a. El pdfaid:part inyectado (1, 2 o 3) y pdfaid:conformance (A, B o U) siguen el valor solicitado, mientras que el OutputIntent mantiene el subtipo GTS_PDFA1 que ISO 19005-2 conserva para cada parte. Como el posprocesador no puede sintetizar estructura lógica, una petición de nivel A (pac1a / pac2a / pac3a) se degrada automáticamente al nivel B correspondiente cuando la fuente carece de la estructura PDF etiquetada que ese nivel requiere — así el archivo guardado nunca hace una afirmación falsa de nivel A

Devuelve True si tiene éxito. Devuelve False si the base SaveAs failed, if the incremental update could not be attached (PDF too short, invalid trailer), or if the ICC profile data was provided but failed validation.

Notas

Ejemplo

// 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;

Véase también

SaveAsPdfAToStream, ValidatePdfA, PdfAConformance, SaveAs