SetPDFAMode

Propiedades del documento, Cumplimiento

Descripción

Activa un modo de conformidad PDF/A para el documento seleccionado. Una sola llamada realiza toda la configuración a nivel de documento que exigen la parte y el nivel de conformidad PDF/A elegidos: la versión de PDF se eleva al mínimo necesario, se escribe la entrada /MarkInfo cuando se selecciona el nivel de conformidad de PDF etiquetado (A), se añade al Catalog una condición de salida (perfil ICC sRGB DeviceRGB) y se escriben las entradas del espacio de nombres XMP pdfaid:part/pdfaid:conformance. La biblioteca también activa una protección de conformidad durante la generación que rechaza las llamadas posteriores que emitirían contenido prohibido por la parte elegida (consulte Remarks)

Llame a esta función una vez en un documento recién creado y antes de añadir contenido. Para validar un archivo PDF/A existente generado por esta u otra biblioteca, utilice CheckFileCompliance con ComplianceTest = 1

Sintaxis

Delphi

Function TPDFlib.SetPDFAMode(NewMode: Integer): Integer;

ActiveX

Function PDFlib::SetPDFAMode(NewMode As Long) As Long

DLL

int DLSetPDFAMode(int InstanceID, int NewMode);

Parámetros

NewModeModo PDF/A por parte (1–4) y nivel B o A.

0 — Desactivar.
1 — PDF/A-1a, PDF 1.4 etiquetado.
2 — PDF/A-1b, PDF 1.4 visual.
3 — PDF/A-2b, PDF 1.7 con transparencia y capas.
4 — PDF/A-2a etiquetado.
5 — PDF/A-3b con adjuntos arbitrarios.
6 — PDF/A-3a etiquetado y adjuntos.
7 — PDF/A-3u con Unicode.
8 — PDF/A-2u con Unicode, sin adjuntos.
9 — PDF/A-4, PDF 2.0, Unicode sin etiquetado obligatorio.
10 — PDF/A-4e con 3D y multimedia.
11 — PDF/A-4f con adjuntos arbitrarios

Valores devueltos

0Error: no hay ningún documento abierto o NewMode está fuera del intervalo 0–11
1El modo PDF/A se activó correctamente

Observaciones

El modo elegido controla una protección de conformidad durante la generación. Una vez activado, la biblioteca rechaza o reescribe las llamadas posteriores que emitirían contenido prohibido por la parte, de acuerdo con ISO 19005:

CMYK / Separation / Shader colorsBloqueado en todos los modos PDF/A (1–11): el documento está configurado con una condición de salida sRGB y solo pueden utilizarse colores compatibles con la clase de dispositivo de dicha condición
EncryptionBloqueado en todos los modos PDF/A. Establezca el modo antes de llamar a cualquier API relacionada con el cifrado
Transparency / blend modes / page transparency groupsBloqueado en los modos 1 y 2 (PDF/A-1 prohíbe las transparencias). Permitido en los modos 3–11 (PDF/A-2, PDF/A-3 y PDF/A-4 admiten transparencias)
JavaScript actionsBloqueado en todos los modos PDF/A — ISO 19005-1 §6.6.1 prohíbe JavaScript y la prohibición se mantiene en PDF/A-2/3
Embedded files / file attachmentsBloqueado en los modos 1–4 (PDF/A-1 los prohíbe y PDF/A-2 solo admite archivos PDF incrustados conformes con PDF/A, condición que la biblioteca no impone). Permitido en los modos 5, 6, 7, 9, 10 y 11. PDF/A-3 admite archivos incrustados de cualquier tipo MIME mediante la asociación AFRelationship, y PDF/A-4 mantiene esa capacidad; en PDF/A-4 estándar el archivo incrustado debe ser conforme con PDF/A, requisito que PDF/A-4f elimina

El contenido necesario de PDF etiquetado (estructura de encabezados, texto alternativo de figuras, atributos de ámbito de tablas y entradas RoleMap para tipos personalizados) es responsabilidad del autor de la llamada para los niveles a (modos 1, 4 y 6). Utilice BeginTag, BeginArtifact, AddRoleMap y los establecedores de elementos de estructura para crear el árbol de estructura. Llame a GetPDFUADiagnostics antes de guardar para mostrar los problemas más habituales de PDF etiquetado. Para el nivel u (modo 7), asegúrese de que los recursos de fuentes del documento proporcionen asignaciones de texto Unicode para todo el texto renderizado

PDF/A y PDF/UA pueden activarse en el mismo documento. Active primero SetPDFAMode (las partes 1a/2a/3a ya implican PDF etiquetado) y después llame a SetPDFUAMode para añadir la configuración de catálogo específica de PDF/UA (DisplayDocTitle, pdfuaid:part, /Tabs /S automático)

Ejemplo

// PDF/A-1b — minimum-effort archival document
PDF.NewDocument;
PDF.SetPDFAMode(2);                              // PDF/A-1b
PDF.SetDocumentInfo('Title', 'Quarterly Report Q1 2026');
PDF.AddStandardFont('Helvetica');
PDF.AddPage;
PDF.SetFontSize(12);
PDF.PrintText(50, 750, 'Quarterly Report — Q1 2026');
PDF.SaveToFile('Q1-Report-PDFA1b.pdf');

// PDF/A-3a — tagged report with an embedded source spreadsheet
PDF.NewDocument;
PDF.SetPDFAMode(6);                              // PDF/A-3a
PDF.SetPDFUAMode('en-US');                       // Optional: also satisfy PDF/UA-1
PDF.SetDocumentInfo('Title', 'Sales Analysis 2026');
PDF.AddStandardFont('Helvetica');
PDF.AddPage;
PDF.BeginTag('H1', '', '');
PDF.PrintText(50, 750, 'Sales Analysis');
PDF.EndTag;
PDF.BeginTag('P', '', '');
PDF.PrintText(50, 720, 'See attached spreadsheet for source data.');
PDF.EndTag;
PDF.EmbedFile('Source data', 'data.xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
PDF.SaveToFile('Sales-PDFA3a.pdf');

Véase también

CheckFileCompliance, SetPDFUAMode, SetMarkInfo, EmbedFile, BeginTag, GetPDFUADiagnostics, SetInformation