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-LOWLa 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-FALSEMarkInfo/Marked no se establece en true; el documento no es un PDF etiquetado
LANG-MISSINGLa 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-FALSEViewerPreferences/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-MISSINGFalta 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-PDFUAIDEl flujo de metadatos XMP no contiene una entrada pdfuaid:part Requerido por ISO 14289-1 §7.2
ANNOT-NO-CONTENTS:NN 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:NFaltan entradas AFRelationship en el diccionario de especificación de archivo de N archivos incrustados. Requerido por ISO 14289-1 §7.11
FIGURE-NO-ALT:NN 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:NSe 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:NN 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:NLos 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:NA 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:NLos 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:NN 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-TRUEMarkInfo/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:NN 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-MISSINGFalta 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:NSe 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:NN 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-ACCESSEl 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-H1El 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:NN 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:NLos 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:NN 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