GetPDFUADiagnosticsA

PDF/UA & Acessibilidade

Descrição

O A final indica o ponto de entrada ANSI (char) da DLL; a interface ActiveX/COM expõe apenas a forma Unicode. O comportamento é idêntico ao de GetPDFUADiagnostics e os argumentos de cadeia são interpretados com a página de códigos atual de SetAnsiMode

Devolve uma lista separada por novas linhas de possíveis problemas de conformidade PDF/UA-1 (ISO 14289-1) encontrados no documento atual. Cada linha contém um código de problema seguido de dois-pontos e uma descrição legível. Devolve uma cadeia vazia quando não são detetados problemas

Sintaxe

Delphi

Function DLGetPDFUADiagnosticsA(InstanceID: Integer): PAnsiChar;

DLL

const char * DLGetPDFUADiagnosticsA(int InstanceID);

Códigos de problemas

PDF-VERSION-LOWA versão PDF do documento (registada no cabeçalho do ficheiro) é inferior a 1.7. O PDF/UA-1 é definido em relação à norma ISO 32000-1:2008 (PDF 1.7). Chame SetPDFUAMode para elevar automaticamente a versão para 1.7
MARKED-FALSEMarkInfo/Marked não está definido como true; o documento não é um PDF etiquetado
LANG-MISSINGA entrada /Lang do catálogo do documento está ausente ou vazia. A norma ISO 14289-1 §7.3 exige uma declaração de idioma natural
DISPLAYDOCTITLE-FALSEViewerPreferences/DisplayDocTitle não é true. É exigido pela ISO 14289-1 §7.1 para que o título do documento seja apresentado na barra de título
DOCINFO-TITLE-MISSINGA entrada /Title do dicionário de informações do documento está ausente ou vazia. O PDF/UA-1 exige um título do documento para que a tecnologia de apoio o possa anunciar quando o documento é aberto. Esta verificação complementa DISPLAYDOCTITLE-FALSE: essa verificação confirma que o título é apresentado no visualizador; esta confirma que o próprio valor do título existe. Chame SetInformation com a chave Title para o definir
XMP-NO-PDFUAIDO fluxo de metadados XMP não contém uma entrada pdfuaid:part. Exigido pela norma ISO 14289-1 §7.2
ANNOT-NO-CONTENTS:NN anotações não isentas (excluindo os subtipos Widget, PrinterMark e TrapNet) não têm uma entrada Contents. Exigido pela norma ISO 14289-1 §7.18.1
EMBED-NO-AFR:NN ficheiros incorporados não têm uma entrada AFRelationship no respetivo dicionário de especificação de ficheiro. Exigido pela norma ISO 14289-1 §7.11
FIGURE-NO-ALT:NN elementos de estrutura Figure ou Formula não têm um valor de texto Alt. A norma ISO 14289-1 §7.5 e a norma ISO 32000-1 §14.9.3 exigem descrições alternativas para figuras gráficas e fórmulas matemáticas
HEADING-LEVEL-SKIP:NForam detetados N saltos de nível de cabeçalhos pela ordem do documento (por exemplo, um H1 seguido imediatamente de um H3, omitindo H2). A ISO 14289-1 §7.1 e o Critério de Sucesso 1.3.1 das WCAG 2.x exigem que os cabeçalhos sejam aninhados sem lacunas
STRUCT-UNCLOSED:NN elementos de estrutura continuam abertos porque EndTag não foi chamado o número correto de vezes. Estes elementos estarão em falta na raiz da árvore de estrutura
TABLE-TH-NO-SCOPE:NN elementos de estrutura TH (célula de cabeçalho de tabela) não têm o atributo Scope. A ISO 32000-1 §14.8.4.3.4, Tabela 337, define Scope (Row, Column ou Both) como o atributo que descreve as células de dados às quais cada célula de cabeçalho se aplica. Sem este atributo, a tecnologia de apoio não consegue associar de forma fiável os cabeçalhos às células de dados em tabelas complexas ou com vários cabeçalhos. Chame SetStructElemScope (ou AddTagAttribute com Owner='Table', Name='Scope') imediatamente depois de etiquetar cada elemento TH
FORM-NO-TOOLTIP:NN campos de formulário interativos (anotações Widget) não têm uma entrada TU (descrição / nome acessível). A norma ISO 14289-1 §7.18.4 exige que todos os campos de formulário interativos tenham uma entrada TU para que a tecnologia de apoio possa anunciar ao utilizador a finalidade do campo. /TU é o nome acessível que os leitores de ecrã leem em voz alta; é distinto de /T (o nome parcial do campo utilizado programaticamente). Defina o valor TU ao criar ou carregar campos de formulário
LIST-STRUCT:NN elementos de estrutura LI ou LBody aparecem fora do elemento principal obrigatório. A norma ISO 32000-1 §14.8.4.4 exige que LI seja um elemento subordinado direto de L (lista) e LBody um elemento subordinado direto de LI (item de lista). Um aninhamento de listas malformado impede as tecnologias de apoio de navegarem corretamente nas listas. Verifique a sequência de chamadas BeginTag / EndTag de todos os elementos relacionados com listas
ROLEMAP-UNMAPPED:NAparecem no documento N tipos personalizados de elementos de estrutura sem entrada no dicionário /RoleMap. As normas ISO 14289-1 §7.1 e ISO 32000-1 §14.7.3 exigem que cada tipo de estrutura não padrão seja mapeado para um tipo PDF padrão, para que a tecnologia de apoio determine como tratar o elemento. Chame AddRoleMap para cada tipo personalizado antes de guardar. A descrição do problema enumera os nomes dos tipos não mapeados
SUSPECTS-TRUEMarkInfo/Suspects está definido como true. ISO 14289-1 §7.1 exige que os ficheiros que declarem conformidade PDF/UA tenham um valor Suspects igual a false. Um valor true assinala que a etiquetagem contém erros conhecidos. Invoque SetMarkInfo depois de o documento estar totalmente etiquetado para repor Suspects como false
ROLEMAP-STANDARD-REMAP:NN tipos de estrutura padrão aparecem como chave "custom" em /RoleMap e seriam remapeados ao guardar. A norma ISO 14289-1 §7.1 proíbe o remapeamento de etiquetas padrão definidas na norma ISO 32000-1 §14.8.4 (P, H1..H6, Figure, Table, etc.). A linha de detalhes apresenta os nomes das etiquetas padrão em causa. Remova as chamadas AddRoleMap afetadas
DC-TITLE-MISSINGO dc:title de Dublin Core do fluxo de metadados XMP está ausente ou vazio. ISO 14289-1 §7.1 exige que o fluxo Metadata contenha uma entrada dc:title que identifique claramente o documento. Esta verificação é independente de DOCINFO-TITLE-MISSING, que inspeciona apenas a entrada /Info /Title. Chame SetPDFUAMode para copiar o título /Info para o pacote XMP
TRAPNET-ANNOT:NForam encontradas N anotações TrapNet nas páginas do documento. A norma ISO 14289-1 §7.18.2 proíbe explicitamente TrapNet em ficheiros conformes com PDF/UA-1. Remova as anotações em causa antes de guardar
ANNOT-PAGE-NO-TABS-S:NN páginas contêm uma ou mais anotações, mas o respetivo dicionário de página não define /Tabs /S. A norma ISO 14289-1 §7.18.3 exige que a ordem de tabulação nessas páginas siga a árvore de estrutura, indicada por /Tabs /S. Defina /Tabs /S no dicionário de cada página que contenha anotações
ENCRYPT-NO-ACCESSO documento está encriptado e PDFUAMode está ativo, mas o bit 10 da chave de permissões de encriptação /P (máscara $200, extração de acessibilidade) está limpo. ISO 14289-1 §7.16 exige que todos os ficheiros conformes encriptados permitam a extração de acessibilidade. Quando PDFUAMode é definido antes de chamar Encrypt, o bit é ativado automaticamente. Quando a ordem das chamadas é inversa, o dicionário de encriptação já existe com o antigo valor /P — chame novamente Encrypt para voltar a emitir o dicionário
FIRST-HEADING-NOT-H1O primeiro elemento de título pela ordem do documento não é H1 (o sentinela H fortemente estruturado também conta como nível 1). ISO 14289-1 §7.4.2 exige que a primeira etiqueta de título dum documento não fortemente estruturado seja H1. A linha de detalhes indica o nível em falta
WIDGET-NO-STRUCTPARENT:NN anotações Widget não têm uma entrada /StructParent. A ISO 14289-1 §7.18.4 exige que as anotações Widget estejam aninhadas numa etiqueta de estrutura Form; sem /StructParent, o Widget não pode ser alcançado a partir da árvore de estrutura. A linha de detalhes comunica a contagem. Esta é uma verificação parcial — ainda não está implementada a verificação completa de que o /S do elemento principal resolvido é Form
LIST-NO-NUMBERING:NN elementos de estrutura L (lista) não têm o atributo ListNumbering. A ISO 14289-1 §7.6 exige que cada etiqueta L declare o respetivo estilo de numeração através deste atributo (os valores válidos segundo a Tabela 347 da ISO 32000-1 são None, Disc, Circle, Square, Decimal, UpperRoman, LowerRoman, UpperAlpha, LowerAlpha). Chame SetStructElemListNumbering depois de abrir cada etiqueta L
MULTIPLE-H-CHILDREN:NN nós da árvore de estrutura contêm mais de um filho H (cabeçalho genérico) direto. A ISO 14289-1 §7.4.4 proíbe-o — divida a secção principal ou substitua as etiquetas H por sequências numeradas H1..H6

Valor devolvido

Uma cadeia de descrições de problemas separadas por novas linhas, ou uma cadeia vazia se não forem detetados problemas de conformidade

Observações

Esta função destina-se a auxiliar os programadores no diagnóstico. Verifica o estado atual do documento na memória e comunica problemas que possam causar falhas de validação PDF/UA-1. Chame-a depois de carregar ou construir um documento para identificar problemas antes da gravação

Quando SetPDFUAMode está ativo e o documento é guardado, vários problemas (ANNOT-NO-CONTENTS, EMBED-NO-AFR) são corrigidos automaticamente durante a gravação. GetPDFUADiagnostics indica o estado anterior à gravação; os problemas que serão corrigidos automaticamente ao guardar continuam a ser listados se existirem antes da gravação

Esta função não modifica o documento

Exemplo

var
  Diag: WideString;
begin
  PDFlib.SetPDFUAMode('en-US');
  // ... build document
  Diag := PDFlib.GetPDFUADiagnostics;
  if Diag <> '' then
    ShowMessage('PDF/UA issues found:'#10 + Diag);
end;

Consulte também

SetPDFUAMode, SetDocumentLanguage, SetEmbeddedFileAFRelationship