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
| NewMode | Modo 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
| 0 | Error: no hay ningún documento abierto o NewMode está fuera del intervalo 0–11 |
|---|---|
| 1 | El 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 colors | Bloqueado 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 |
|---|---|
| Encryption | Bloqueado en todos los modos PDF/A. Establezca el modo antes de llamar a cualquier API relacionada con el cifrado |
| Transparency / blend modes / page transparency groups | Bloqueado 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 actions | Bloqueado 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 attachments | Bloqueado 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