GetPDFUADiagnosticsA
PDF/UA & accesibilidad
Descripción
La A final indica el punto de entrada ANSI (char) de la DLL; la interfaz ActiveX/COM expone únicamente la forma Unicode. El comportamiento es idéntico a GetPDFUADiagnostics y los argumentos de cadena se interpretan utilizando la página de códigos actual de SetAnsiMode
Devuelve una lista, separada por saltos de línea, de posibles problemas de conformidad con PDF/UA-1 (ISO 14289-1) encontrados en el documento actual Cada línea contiene un código de problema seguido de dos puntos y una descripción legible Devuelve una cadena vacía cuando no se detectan problemas
Sintaxis
Delphi
Function DLGetPDFUADiagnosticsA(InstanceID: Integer): PAnsiChar;
DLL
const char * DLGetPDFUADiagnosticsA(int InstanceID);
Códigos de incidencia
| PDF-VERSION-LOW | La versión de PDF del documento (según se registra en el encabezado del archivo) es anterior a 1.7 PDF/UA-1 se define respecto de ISO 32000-1:2008 (PDF 1.7) Llame a SetPDFUAMode para elevar automáticamente la versión a 1.7 |
|---|---|
| MARKED-FALSE | MarkInfo/Marked no se establece en true; el documento no es un PDF etiquetado |
| LANG-MISSING | La entrada /Lang del catálogo de documentos está ausente o vacía. ISO 14289-1 §7.3 exige una declaración de idioma natural |
| DISPLAYDOCTITLE-FALSE | ViewerPreferences/DisplayDocTitle no es verdadero; ISO 14289-1 §7.1 lo exige para que el título del documento se muestre en la barra de título |
| DOCINFO-TITLE-MISSING | Falta la entrada /Title del diccionario de información del documento o está vacía. PDF/UA-1 exige un título de documento para que la tecnología de asistencia pueda anunciarlo al abrir el documento. Esta comprobación complementa a DISPLAYDOCTITLE-FALSE: esa comprobación verifica que el título se muestre en el visor; esta comprueba que exista el valor del título. Llame a SetInformation con la clave Title para establecerlo |
| XMP-NO-PDFUAID | El flujo de metadatos XMP no contiene una entrada pdfuaid:part Requerido por ISO 14289-1 §7.2 |
| ANNOT-NO-CONTENTS:N | N anotaciones no exentas (excluidos los subtipos Widget, PrinterMark y TrapNet) carecen de una entrada Contents. Requerido por ISO 14289-1 §7.18.1 |
| EMBED-NO-AFR:N | Faltan entradas AFRelationship en el diccionario de especificación de archivo de N archivos incrustados. Requerido por ISO 14289-1 §7.11 |
| FIGURE-NO-ALT:N | N elementos de estructura Figure o Formula no tienen valor de texto alternativo. ISO 14289-1 §7.5 e ISO 32000-1 §14.9.3 exigen descripciones alternativas tanto para figuras gráficas como para fórmulas matemáticas |
| HEADING-LEVEL-SKIP:N | Se detectaron saltos de nivel de encabezado N en el orden del documento (por ejemplo, un H1 seguido inmediatamente de un H3, omitiendo H2). ISO 14289-1 §7.1 y el criterio de éxito 1.3.1 de WCAG 2.x exigen que los encabezados se aniden sin saltos |
| STRUCT-UNCLOSED:N | N elementos de estructura siguen abiertos porque EndTag no se llamó el número correcto de veces Estos elementos faltarán en la raíz del árbol de estructura |
| TABLE-TH-NO-SCOPE:N | Los N elementos de estructura TH (celdas de encabezado de tabla) no tienen atributo Scope. ISO 32000-1 §14.8.4.3.4 Tabla 337 define Scope (Row, Column o Both) como el atributo que describe a qué celdas de datos se aplica cada celda de encabezado. Sin él, la tecnología de asistencia no puede asociar de forma confiable los encabezados con las celdas de datos en tablas complejas o con varios encabezados. Llame a SetStructElemScope (o a AddTagAttribute con Owner='Table', Name='Scope') inmediatamente después de etiquetar cada elemento TH |
| FORM-NO-TOOLTIP:N | A N campos de formulario interactivos (anotaciones Widget) les falta una entrada TU (descripción emergente o nombre accesible) ISO 14289-1 §7.18.4 exige que todos los campos de formulario interactivos tengan una entrada TU para que la tecnología de asistencia pueda comunicar el propósito del campo al usuario /TU es el nombre accesible que los lectores de pantalla leen en voz alta; es distinto de /T (el nombre de campo parcial usado mediante programación) Establezca el valor TU al crear o cargar campos de formulario |
| LIST-STRUCT:N | Los elementos de estructura LI o LBody aparecen fuera de su elemento primario requerido. ISO 32000-1 §14.8.4.4 exige que LI sea hijo directo de L (lista), y que LBody sea hijo directo de LI (elemento de lista). El anidamiento de listas con formato incorrecto impide que la tecnología de asistencia navegue correctamente por las listas. Revise la secuencia de llamadas BeginTag / EndTag para todos los elementos relacionados con listas |
| ROLEMAP-UNMAPPED:N | N tipos de elementos estructurales personalizados aparecen en el documento pero no tienen entrada en el diccionario /RoleMap. ISO 14289-1 §7.1 e ISO 32000-1 §14.7.3 exigen que cada tipo de estructura no estándar se asigne a un tipo PDF estándar para que la tecnología de asistencia pueda determinar cómo manejar el elemento. Llame a AddRoleMap para cada tipo personalizado antes de guardar. La descripción del problema enumera los nombres de tipo sin asignar |
| SUSPECTS-TRUE | MarkInfo/Suspects está establecido en true. ISO 14289-1 §7.1 exige que los archivos que declaran conformidad PDF/UA tengan Suspects en false. Un valor true marca el etiquetado como conocido por contener errores. Llame a SetMarkInfo después de etiquetar completamente el documento para restablecer Suspects a false |
| ROLEMAP-STANDARD-REMAP:N | N tipos de estructura estándar aparecen como la clave "custom" en /RoleMap y se reasignarían al guardar ISO 14289-1 §7.1 prohíbe reasignar etiquetas estándar definidas en ISO 32000-1 §14.8.4 (P, H1..H6, Figure, Table, etc) La línea de detalle enumera los nombres de las etiquetas estándar infractoras Elimine las llamadas afectadas a AddRoleMap |
| DC-TITLE-MISSING | Falta el dc:title de Dublin Core en el flujo de metadatos XMP o está vacío ISO 14289-1 §7.1 exige que el flujo Metadata contenga una entrada dc:title que identifique claramente el documento Esta comprobación es independiente de DOCINFO-TITLE-MISSING, que solo inspecciona la entrada /Info /Title Llame a SetPDFUAMode para copiar el título de /Info en el paquete XMP |
| TRAPNET-ANNOT:N | Se encontraron N anotaciones TrapNet en las páginas del documento ISO 14289-1 §7.18.2 prohíbe explícitamente TrapNet en archivos conformes con PDF/UA-1 Elimine las anotaciones problemáticas antes de guardar |
| ANNOT-PAGE-NO-TABS-S:N | N páginas contienen una o más anotaciones, pero su diccionario de página no establece /Tabs /S. ISO 14289-1 §7.18.3 exige que el orden de tabulación de esas páginas siga el árbol de estructura, indicado por /Tabs /S. Establezca /Tabs /S en el diccionario de página de cada página que contenga anotaciones |
| ENCRYPT-NO-ACCESS | El documento está cifrado y PDFUAMode está activo, pero el bit 10 de la clave de permisos /P de cifrado (máscara $200, extracción de accesibilidad) está desactivado ISO 14289-1 §7.16 exige que todo archivo cifrado conforme permita la extracción para accesibilidad Cuando PDFUAMode se establece antes de llamar a Encrypt, el bit se activa automáticamente Cuando el orden de llamadas es el inverso, el diccionario de cifrado ya está establecido con el valor anterior de /P — llame otra vez a Encrypt para volver a emitir el diccionario |
| FIRST-HEADING-NOT-H1 | El primer elemento de encabezado en orden de documento no es H1 (el centinela H fuertemente estructurado también cuenta como nivel 1). ISO 14289-1 §7.4.2 exige que la primera etiqueta de encabezado en un documento no fuertemente estructurado sea H1. La línea de detalles nombra el nivel infractor |
| WIDGET-NO-STRUCTPARENT:N | N anotaciones Widget carecen de una entrada /StructParent. ISO 14289-1 §7.18.4 exige que las anotaciones Widget estén anidadas en una etiqueta de estructura Form; sin /StructParent, no se puede acceder a Widget desde el árbol de estructura. La línea de detalle informa el recuento. Esta es una comprobación parcial — aún no se implementa la verificación completa de que el /S del padre resuelto sea Form |
| LIST-NO-NUMBERING:N | Los elementos de estructura N L (lista) no tienen el atributo ListNumbering. ISO 14289-1 §7.6 exige que cada etiqueta L declare su estilo de numeración mediante este atributo (los valores válidos según ISO 32000-1 Table 347 son None, Disc, Circle, Square, Decimal, UpperRoman, LowerRoman, UpperAlpha, LowerAlpha). Llame a SetStructElemListNumbering después de abrir cada etiqueta L |
| MULTIPLE-H-CHILDREN:N | N nodos de árbol de estructura contienen más de un hijo H (encabezado genérico) directo. ISO 14289-1 §7.4.4 lo prohíbe — divida la sección principal o reemplace las etiquetas H por secuencias numeradas H1..H6 |
Valor devuelto
Una cadena de descripciones de problemas separadas por saltos de línea o una cadena vacía si no se detectan problemas de conformidad
Observaciones
Esta función está pensada como ayuda de diagnóstico para desarrolladores Comprueba el estado actual del documento en memoria e informa problemas que podrían causar fallas de validación de PDF/UA-1 Llámela después de cargar o construir un documento para identificar problemas antes de guardarlo
Cuando SetPDFUAMode está activo y se guarda el documento, varias incidencias (ANNOT-NO-CONTENTS, EMBED-NO-AFR) se corrigen automáticamente durante el guardado; GetPDFUADiagnostics informa el estado previo al guardado; las incidencias que se corregirán automáticamente al guardar siguen apareciendo si están presentes antes de guardar
Esta función no modifica el documento
Ejemplo
var
Diag: WideString;
begin
PDFlib.SetPDFUAMode('en-US');
// ... build document
Diag := PDFlib.GetPDFUADiagnostics;
if Diag <> '' then
ShowMessage('PDF/UA issues found:'#10 + Diag);
end;Véase también
SetPDFUAMode, SetDocumentLanguage, SetEmbeddedFileAFRelationship