GetPDFUADiagnosticsA
PDF/UA & Accessibility
Beskrivelse
Den avsluttende A angir ANSI-inngangspunktet (char) i DLL-en; ActiveX/COM-flaten eksponerer kun Unicode-formen. Oppførselen er identisk med GetPDFUADiagnostics og strengargumenter tolkes ut fra gjeldende kodetabell i SetAnsiMode
Returnerer en liste over mulige samsvarsproblemer med PDF/UA-1 (ISO 14289-1), atskilt med linjeskift, som er funnet i gjeldende dokument. Hver linje inneholder én problemkode etterfulgt av kolon og en menneskelesbar beskrivelse. Returnerer en tom streng når ingen problemer oppdages
Syntaks
Delphi
Function DLGetPDFUADiagnosticsA(InstanceID: Integer): PAnsiChar;
DLL
const char * DLGetPDFUADiagnosticsA(int InstanceID);
Issue codes
| PDF-VERSION-LOW | Dokumentets PDF-versjon (som registrert i filhodet) er under 1.7. PDF/UA-1 er definert mot ISO 32000-1:2008 (PDF 1.7). Kall SetPDFUAMode for å heve versjonen til 1.7 automatisk |
|---|---|
| MARKED-FALSE | MarkInfo/Marked er ikke satt til true; dokumentet er ikke en tagget PDF |
| LANG-MISSING | Dokumentkatalogens /Lang-oppføring mangler eller er tom. ISO 14289-1 §7.3 krever en naturspråkdeklarasjon |
| DISPLAYDOCTITLE-FALSE | ViewerPreferences/DisplayDocTitle er ikke true. Kreves av ISO 14289-1 §7.1 slik at dokumenttittelen vises i tittellinjen |
| DOCINFO-TITLE-MISSING | Document information dictionary /Title-oppføringen mangler eller er tom. PDF/UA-1 krever en dokumenttittel slik at assisterende teknologi kan kunngjøre den når dokumentet åpnes. Denne sjekken utfyller DISPLAYDOCTITLE-FALSE: den sjekken verifiserer at tittelen overflatedannes i fremviseren; denne sjekken verifiserer at tittelverdien i seg selv finnes. Kall SetInformation med nøkkelen Title for å setje den |
| XMP-NO-PDFUAID | XMP-metadatastrømmen inneholder ingen pdfuaid:part-oppføring. Kreves av ISO 14289-1 §7.2 |
| ANNOT-NO-CONTENTS:N | N ikke-unntatte annotasjoner (unntatt Widget-, PrinterMark- og TrapNet-subtypene) mangler en Contents-oppføring. Kreves av ISO 14289-1 §7.18.1 |
| EMBED-NO-AFR:N | N innebygde filer mangler en AFRelationship-oppføring i sin filspesifikasjonsordbok. Kreves av ISO 14289-1 §7.11 |
| FIGURE-NO-ALT:N | N Figure- eller Formula-strukturelementer har ingen Alt-tekstverdi. ISO 14289-1 §7.5 og ISO 32000-1 §14.9.3 krever alternative beskrivelser for både grafiske figurer og matematiske formler |
| HEADING-LEVEL-SKIP:N | N overskriftsnivåhopp ble oppdaget i dokumentrekkefølge (f.eks. en H1 umiddelbart etterfulgt av en H3, som hopper over H2). ISO 14289-1 §7.1 og WCAG 2.x suksesskriterium 1.3.1 krever at overskrifter neser uten hull |
| STRUCT-UNCLOSED:N | N strukturelementer står fortsatt åpne fordi EndTag ikke ble kalt riktig antall ganger. Disse elementene mangler i strukturtreroten |
| TABLE-TH-NO-SCOPE:N | N TH-strukturelementer (tabelltopptekstcelle) mangler Scope-attributten. ISO 32000-1 §14.8.4.3.4 tabell 337 definerer Scope (Row, Column eller Both) som attributten som beskriver hvilke dataceller hver topptekstcelle gjelder for. Uten den kan assistiv teknologi ikke knytte topptekster til dataceller pålitelig i komplekse tabeller eller tabeller med flere topptekster. Kall SetStructElemScope (eller AddTagAttribute med Owner='Table', Name='Scope') rett etter at du tagger hvert TH-element |
| FORM-NO-TOOLTIP:N | N interaktive skjemafelt (Widget-annotasjoner) mangler en TU-oppføring (verktøyhint / tilgjengelig navn). ISO 14289-1 §7.18.4 krever at alle interaktive skjemafelt bærer en TU-oppføring slik at assistiv teknologi kan annonsere feltets formål for brukeren. /TU er det tilgjengelige navnet skjermlesere leser opp; det er forskjellig fra /T (delfeltnavnet som brukes programmatisk). Sett TU-verdien når du oppretter eller laster skjemafelt |
| LIST-STRUCT:N | N LI- eller LBody-strukturelementer forekommer uten sin påkrevde forelder. ISO 32000-1 §14.8.4.4 krever at LI er direkte barn av L (liste), og at LBody er direkte barn av LI (listepunkt). Feilformet listenesting hindrer assistiv teknologi i å navigere lister riktig. Sjekk BeginTag / EndTag-kallsekvensen for alle listerelaterte elementer |
| ROLEMAP-UNMAPPED:N | N egendefinerte strukturelementtyper forekommer i dokumentet men har ingen oppføring i /RoleMap-ordboken. ISO 14289-1 §7.1 og ISO 32000-1 §14.7.3 krever at hver ikke-standard strukturtype mappes til en standard PDF-type slik at assistiv teknologi kan avgjøre hvordan elementet skal behandles. Kall AddRoleMap for hver egendefinerte type før lagring. Funnbeskrivelsen lister opp de umappede typenavnene |
| SUSPECTS-TRUE | MarkInfo/Suspects er satt til true. ISO 14289-1 §7.1 krever at filer som hevder PDF/UA-samsvar har en Suspects-verdi på false. En true-verdi markerer taggingen som kjent feilbeheftet. Kall SetMarkInfo etter at dokumentet er fullt tagget for å nullstille Suspects til false |
| ROLEMAP-STANDARD-REMAP:N | N standard structure types appear as the "custom" key in /RoleMap and would be remapped on save. ISO 14289-1 §7.1 forbids remapping standard tags defined in ISO 32000-1 §14.8.4 (P, H1..H6, Figure, Table, etc.). The detail line lists the offending standard tag names. Remove the affected AddRoleMap calls. |
| DC-TITLE-MISSING | Dublin Core dc:title i XMP-metadatastrømmen mangler eller er tom. ISO 14289-1 §7.1 krever at Metadata-strømmen inneholder en dc:title-oppføring som tydelig identifiserer dokumentet. Denne kontrollen er separat fra DOCINFO-TITLE-MISSING, som bare undersøker oppføringen /Info /Title. Kall SetPDFUAMode for å kopiere /Info-tittelen inn i XMP-pakken |
| TRAPNET-ANNOT:N | N TrapNet-annotasjoner ble funnet på dokumentsider. ISO 14289-1 §7.18.2 forbyr uttrykkelig TrapNet i PDF/UA-1-samsvarende filer. Fjern de klanderverdige annotasjonene før lagring |
| ANNOT-PAGE-NO-TABS-S:N | N sider bærer én eller flere annotasjoner, men sideordboken deres setter ikke /Tabs /S. ISO 14289-1 §7.18.3 krever at tabulatorrekkefølgen på slike sider følger strukturtræet, signalisert ved /Tabs /S. Sett /Tabs /S i sideordboken for hver side som inneholder annotasjoner |
| ENCRYPT-NO-ACCESS | Dokumentet er kryptert og PDFUAMode er aktiv, men bit 10 av krypteringens /P-rettighetsnøkkel (maske $200, accessibility extract) er fjernet. ISO 14289-1 §7.16 krever at hver kryptert standardfølgende fil tillater accessibility extract. Når PDFUAMode settes før Encrypt kalles, tvinges biten på automatisk. Når kallrekkefølgen er motsatt, er krypteringsordboken allerede på plass med den gamle /P-verdien — kall Encrypt igjen slik at ordboken emiteres på nytt |
| FIRST-HEADING-NOT-H1 | Det første overskriftselementet i dokumentrekkefølge er ikke H1 (den sterkt strukturerte H-sentinel teller også som nivå 1). ISO 14289-1 §7.4.2 krever at den første overskriftstaggen i et ikke-sterkt strukturert dokument er H1. Detallinjen navngir det offensive nivået |
| WIDGET-NO-STRUCTPARENT:N | N Widget-annotasjoner mangler en /StructParent-oppføring. ISO 14289-1 §7.18.4 krever at Widget-annotasjoner nestes inne i en Form-strukturen-tag; uten /StructParent kan Widget-en i det hele tatt ikke nås fra strukturtræet. Detalllinjen rapporterer antallet. Dette er en delvis sjekk — full verifisering av at den løste foreldren /S er Form, er ikke implementert ennå |
| LIST-NO-NUMBERING:N | N L (liste)-strukturelementer mangler ListNumbering-attributtet. ISO 14289-1 §7.6 krever at hver L-tagg deklarerer sin nummereringsstil via dette attributtet (gyldige verdier per ISO 32000-1 Table 347 er None, Disc, Circle, Square, Decimal, UpperRoman, LowerRoman, UpperAlpha, LowerAlpha). Kall SetStructElemListNumbering etter åpning av hver L-tagg |
| MULTIPLE-H-CHILDREN:N | N strukturtre-noder inneholder mer enn ett direkte H-barn (generisk overskrift). ISO 14289-1 §7.4.4 forbyr det — del forelderseksjonen eller erstatt H-taggene med nummererte H1..H6-sekvenser |
Returverdi
En linjeskiftatskilt streng med funnbeskrivelser, eller en tom streng hvis ingen samsvarsfunn oppdages
Merknader
Denne funksjonen er ment som et diagnostisk hjelpemiddel for utviklere. Den sjekker dokumentets nåværende tilstand i minnet og rapporterer problemer som kan føre til PDF/UA-1-valideringsfeil. Kall den etter lasting eller konstruksjon av et dokument for å identifisere problemer før lagring
Når SetPDFUAMode er aktiv og dokumentet lagres, rettes flere problemer (ANNOT-NO-CONTENTS, EMBED-NO-AFR) automatisk under lagringen. GetPDFUADiagnostics rapporterer tilstanden før lagring; problemer som vil rettes automatisk ved lagring, listes fortsatt opp hvis de finnes før lagring
Denne funksjonen endrer ikke dokumentet
Eksempel
var
Diag: WideString;
begin
PDFlib.SetPDFUAMode('en-US');
// ... build document
Diag := PDFlib.GetPDFUADiagnostics;
if Diag <> '' then
ShowMessage('PDF/UA issues found:'#10 + Diag);
end;Se også
SetPDFUAMode, SetDocumentLanguage, SetEmbeddedFileAFRelationship