SetPDFAMode
Propiedades del documento, conformidad
Descripción
Activa un modo de conformidad PDF/A para el documento seleccionado Una sola llamada realiza toda la configuración de nivel de documento requerida por la parte PDF/A y el nivel de conformidad elegidos: la versión de PDF se eleva al mínimo requerido, se escribe la entrada /MarkInfo al seleccionar el nivel de conformidad PDF etiquetado (A), se agrega una intención de salida (perfil ICC sRGB DeviceRGB) al Catálogo y se escriben las entradas de espacio de nombres XMP pdfaid:part/pdfaid:conformance La biblioteca también activa una protección de conformidad del lado de la generación que rechaza llamadas posteriores que emitirían contenido prohibido por la parte elegida (consulte Remarks)
Llame a esto una vez en un documento recién creado y antes de agregar contenido. Para validar un archivo PDF/A existente producido por esta u otra biblioteca, use 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 | El modo de conformidad PDF/A que se activará. Cada modo se identifica por una parte de PDF/A (1, 2, 3 o 4 — ISO 19005-1/-2/-3/-4) y un nivel de conformidad (B para reproducción visual básica, A para accesibilidad de PDF etiquetado). 0 — Desactiva el modo PDF/A (predeterminado). 1 — PDF/A-1a (ISO 19005-1 Nivel A). PDF 1.4. Se requiere PDF etiquetado. 2 — PDF/A-1b (ISO 19005-1 Nivel B). PDF 1.4. Solo reproducción visual. 3 — PDF/A-2b (ISO 19005-2 Nivel B). PDF 1.7. Solo reproducción visual; se permiten transparencias y capas. 4 — PDF/A-2a (ISO 19005-2 Nivel A). PDF 1.7. Se requiere PDF etiquetado. 5 — PDF/A-3b (ISO 19005-3 Nivel B). PDF 1.7. Como PDF/A-2b, pero permite archivos incrustados arbitrarios. 6 — PDF/A-3a (ISO 19005-3 Nivel A). PDF 1.7. Como PDF/A-2a, pero permite archivos incrustados arbitrarios. 7 — PDF/A-3u (ISO 19005-3 Nivel U). PDF 1.7. Como PDF/A-3b, pero declara que el texto debe tener asignaciones Unicode. 8 — PDF/A-2u (ISO 19005-2 Nivel U). PDF 1.7. Como PDF/A-2b, pero declara que el texto debe tener asignaciones Unicode; los archivos incrustados siguen prohibidos. 9 — PDF/A-4 (ISO 19005-4). PDF 2.0. Se identifica por la parte y el año de revisión en lugar de un nivel de conformidad; el texto necesita asignaciones Unicode y no se requiere etiquetado. 10 — PDF/A-4e (ISO 19005-4). PDF 2.0. Como PDF/A-4 y además permite 3D y contenido multimedia enriquecido para documentos de ingeniería. 11 — PDF/A-4f (ISO 19005-4). PDF 2.0. Como PDF/A-4 y además permite un archivo incrustado de cualquier formato |
|---|
Valores devueltos
| 0 | Falló — no hay ningún documento abierto, o NewMode está fuera del rango 0–7 |
|---|---|
| 1 | El modo PDF/A se activó correctamente |
Observaciones
El modo elegido controla una protección de conformidad del lado de la generación. Una vez activada, la biblioteca rechaza o reescribe llamadas posteriores que emitirían contenido prohibido por la parte, conforme a ISO 19005:
| CMYK / Separation / Shader colors | Bloqueado en todos los modos PDF/A (1–7) — el documento se configura con una intención de salida sRGB y solo se pueden usar colores compatibles con la clase de dispositivo de la intención de salida |
|---|---|
| Encryption | Bloqueado en todos los modos PDF/A. Establezca el modo antes de llamar a cualquier API relacionada con cifrado |
| Transparency / blend modes / page transparency groups | Bloqueado en los modos 1 y 2 (PDF/A-1 prohíbe la transparencia). Permitido en los modos 3–7 (PDF/A-2/3 permiten la transparencia) |
| 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; PDF/A-2 solo permite PDF incrustados conformes con PDF/A, lo cual la biblioteca no comprueba). Permitido en los modos 5, 6 y 7 — PDF/A-3 permite explícitamente archivos incrustados de cualquier tipo MIME mediante la asociación AFRelationship |
El contenido PDF etiquetado requerido (estructura de encabezados, texto alternativo en figuras, atributos de alcance de tabla y entradas RoleMap para tipos personalizados) es responsabilidad de quien llama para los niveles a (modos 1, 4, 6). Use 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 PDF etiquetados más frecuentes. Para el nivel u (modo 7), asegúrese de que los recursos de fuente del documento proporcionen asignaciones de texto Unicode para todo el texto procesado
PDF/A y PDF/UA se pueden activar en el mismo documento. Active primero SetPDFAMode (las partes 1a/2a/3a ya implican PDF etiquetado) y después llame a SetPDFUAMode para agregar 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