GetPDFUADiagnosticsA

PDF/UA & accesibilidad

Descripción

El sufijo A indica el punto de entrada ANSI (char) de la DLL; la superficie 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 SetAnsiMode actual

Devuelve una lista por líneas de posibles incumplimientos PDF/UA-1, cada una con código, dos puntos y descripción; vacía si no hay incidencias

Sintaxis

Delphi

Function DLGetPDFUADiagnosticsA(InstanceID: Integer): PAnsiChar;

DLL

const char * DLGetPDFUADiagnosticsA(int InstanceID);

Códigos de incidencia

PDF-VERSION-LOWLa versión PDF del documento (según se registra en la cabecera 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 está establecido en true; el documento no es un PDF etiquetado
LANG-MISSINGLa entrada /Lang del catálogo del documento no existe o está vacía. ISO 14289-1 §7.3 exige declarar un idioma natural
DISPLAYDOCTITLE-FALSEViewerPreferences/DisplayDocTitle no es true. ISO 14289-1 §7.1 lo exige para mostrar el título del documento en la barra de título
DOCINFO-TITLE-MISSINGLa entrada /Title del diccionario de información del documento está ausente o vacía. PDF/UA-1 requiere un título de documento para que las tecnologías de asistencia puedan anunciarlo al abrirlo. Esta comprobación complementa a DISPLAYDOCTITLE-FALSE: aquella verifica que el título se muestre en el visor; esta comprueba que exista el propio valor del título. Llame a SetInformation con la clave Title para establecerlo
XMP-NO-PDFUAIDEl flujo de metadatos XMP no contiene ninguna entrada pdfuaid:part. ISO 14289-1 §7.2 la exige
ANNOT-NO-CONTENTS:NFalta una entrada Contents en N anotaciones no exentas (salvo subtipos Widget, PrinterMark y TrapNet). ISO 14289-1 §7.18.1 la exige
EMBED-NO-AFR:NA N archivos incrustados les falta una entrada AFRelationship en su diccionario de especificación de archivo. ISO 14289-1 §7.11 la exige
FIGURE-NO-ALT:NN elementos de estructura Figure o Formula no tienen ningún valor de texto Alt. ISO 14289-1 §7.5 e ISO 32000-1 §14.9.3 exigen descripciones alternativas tanto para las figuras gráficas como para las fórmulas matemáticas
HEADING-LEVEL-SKIP:NSe detectaron N saltos de nivel de encabezado en el orden del documento (p. ej., un H1 seguido inmediatamente por un H3, omitiendo H2). ISO 14289-1 §7.1 y el criterio de conformidad 1.3.1 de WCAG 2.x exigen que los encabezados se aniden sin saltos
STRUCT-UNCLOSED:NSiguen abiertos N elementos de estructura porque no se llamó a EndTag el número correcto de veces. Faltarán en la raíz del árbol de estructura
TABLE-TH-NO-SCOPE:NN elementos de estructura TH (celda de encabezado de tabla) no tienen ningún atributo Scope. ISO 32000-1 §14.8.4.3.4 Table 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, las tecnologías de asistencia no pueden asociar de forma fiable 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:NFalta TU en N campos interactivos. ISO 14289-1 §7.18.4 lo exige como nombre accesible para que tecnología asistencial anuncie el propósito. /TU difiere de /T, nombre parcial programático
LIST-STRUCT:NN elementos de estructura LI o LBody aparecen fuera de su padre obligatorio. 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). Un anidamiento de listas mal formado impide que la tecnología de asistencia navegue correctamente por ellas. Compruebe la secuencia de llamadas BeginTag / EndTag de todos los elementos relacionados con listas
ROLEMAP-UNMAPPED:NAparecen N tipos de elementos de estructura personalizados en el documento, pero no tienen ninguna 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 las tecnologías de asistencia puedan determinar cómo gestionar el elemento. Llame a AddRoleMap para cada tipo personalizado antes de guardar. La descripción del problema enumera los nombres de tipos sin asignar
SUSPECTS-TRUEMarkInfo/Suspects es true. ISO 14289-1 §7.1 exige false para PDF/UA. Llame a SetMarkInfo tras etiquetar para restablecerlo
ROLEMAP-STANDARD-REMAP:NN tipos de estructura estándar aparecen como clave "custom" en /RoleMap y se volverían a asignar al guardar. ISO 14289-1 §7.1 prohíbe reasignar las etiquetas estándar definidas en ISO 32000-1 §14.8.4 (P, H1..H6, Figure, Table, etc.). La línea de detalles muestra los nombres de las etiquetas estándar infractoras. Elimine las llamadas afectadas a AddRoleMap
DC-TITLE-MISSINGFalta dc:title Dublin Core en XMP. ISO 14289-1 §7.1 lo exige. Es distinto de DOCINFO-TITLE-MISSING; SetPDFUAMode copia /Info title al paquete XMP
TRAPNET-ANNOT:NSe encontraron N anotaciones TrapNet. ISO 14289-1 §7.18.2 las prohíbe expresamente en PDF/UA-1. Elimine las anotaciones antes de guardar
ANNOT-PAGE-NO-TABS-S:NN páginas tienen anotaciones sin /Tabs /S. ISO 14289-1 §7.18.3 exige orden estructural; establezca /Tabs /S en cada página afectada
ENCRYPT-NO-ACCESSEl documento está cifrado y PDFUAMode activo, pero el bit 10 de /P (máscara $200) está borrado. ISO 14289-1 §7.16 exige extracción accesible. Si se activó después de Encrypt, el valor /P ya existe — llame de nuevo a Encrypt
FIRST-HEADING-NOT-H1El primer elemento de encabezado en el orden del documento no es H1 (el centinela H de estructura estricta también cuenta como nivel 1). ISO 14289-1 §7.4.2 exige que la primera etiqueta de encabezado de un documento sin estructura estricta sea H1. La línea de detalle indica 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 dentro de una etiqueta de estructura Form; sin /StructParent, no se puede acceder a Widget desde el árbol de estructura. La línea de detalles indica el número. Esta es una comprobación parcial — aún no se ha implementado la verificación completa de que el elemento primario /S resuelto sea Form
LIST-NO-NUMBERING:NN elementos de estructura L (lista) carecen del 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 y LowerAlpha). Llame a SetStructElemListNumbering después de abrir cada etiqueta L
MULTIPLE-H-CHILDREN:NN nodos del árbol de estructura contienen más de un elemento secundario H directo (encabezado genérico). ISO 14289-1 §7.4.4 lo prohíbe; divida la sección principal o sustituya las etiquetas H por secuencias numeradas H1..H6

Valor devuelto

Cadena de descripciones de problemas separadas por saltos de línea o cadena vacía si no se detecta ningún problema de conformidad

Observaciones

Ayuda de diagnóstico para desarrolladores que comprueba el estado en memoria e informa de problemas PDF/UA-1 antes de guardar

Con SetPDFUAMode activo, algunas incidencias se corrigen al guardar. GetPDFUADiagnostics informa del estado previo y aún las enumera antes del guardado

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