function SaveAsPdfUa(const FileName: string): Boolean; overload;
function SaveAsPdfUa(const FileName: string; const Options: TPdfUaSaveOptions): Boolean; overload;
SaveAsPdfUa 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/UA-1
(ISO 14289-1:2014). El posprocesado inyecta cuatro clases de marcadores en el flujo guardado:
pdfuaid:part = 1) más la descripción correspondiente pdfaExtension:schemas, la entrada obligatoria dc:title (ISO 14289-1 §7.1) y campos del diccionario Info enlazados (Author, Subject, Producer, Keywords, CreationDate, ModDate, etc.)/MarkInfo << /Marked true /Suspects false >> del catálogo cuando el catálogo de origen no tiene entrada /MarkInfo (§7.1)/ViewerPreferences << /DisplayDocTitle true >> del catálogo cuando la fuente no tiene entrada /ViewerPreferences (§7.1)/Lang (xx) del catálogo cuando la fuente no tiene /Lang y Options.Language proporciona una etiqueta BCP 47 (§7.2). El trailer también recibe un array /ID (reutilizado de FPDF_GetFileIdentifier cuando está disponible, o derivado de forma determinista a partir de los bytes de origen)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/UA siguen renderizando el archivo exactamente como lo haría el SaveAs normal. Las dos
sobrecargas difieren solo en cómo se pasa la configuración: la forma de solo nombre de archivo usa
TPdfUaSaveOptions.Default con autocompletado desde FPDF_GetMetaText /
FPDF_GetFileIdentifier / FPDFCatalog_GetLanguage, mientras que la forma
TPdfUaSaveOptions permite al llamador anular Title, Author, Subject, Keywords, Creator,
Producer, CreationDate, ModDate, Language, DocumentId, InstanceId y los identificadores pdfuaid Part /
Amd / Corr
Devuelve True si tiene éxito. Devuelve False si falló el SaveAs
base o si no se pudo acoplar la actualización incremental (PDF demasiado corto, trailer no válido, fuente
cifrada)
SaveAsPdfUa adjunta los marcadores de formato de archivo requeridos por ISO 14289-1 — no genera un árbol de estructura, no incrusta fuentes ausentes, no añade texto Alt a las figuras ni altera de otro modo el contenido de la página. Crear un documento etiquetado (StructTreeRoot, Figure /Alt, tabla /TH /Scope, etc.) sigue siendo responsabilidad de quien llama. Usa ValidatePdfUa para mostrar la ausencia de esos requisitos a nivel de contenido/MarkInfo, /ViewerPreferences o /Lang, esas entradas se preservan y SaveAsPdfUa no las sobrescribe. /Metadata siempre se sustituye por el nuevo XMP PDF/UASaveAs(..., saRemoveSecurity) si hace falta
// Simple PDF/UA-1 output, options auto-populated from the document
if Pdf1.SaveAsPdfUa('C:\Report.pdfua.pdf') then
ShowMessage('Saved PDF/UA-1');
// With explicit options (Title overridden, language explicit)
var
Opts: TPdfUaSaveOptions;
begin
Opts := TPdfUaSaveOptions.Default;
Opts.DocumentTitle := 'Quarterly Report Q3 2026';
Opts.Language := 'en-US';
Pdf1.SaveAsPdfUa('C:\Report.q3.pdfua.pdf', Opts);
end;