GetPDFUADiagnostics

PDF/UA & tilgængelighed

Beskrivelse

Returnerer en linjeskiftsepareret liste over potentielle overensstemmelsesproblemer med PDF/UA-1 (ISO 14289-1), som er fundet i det aktuelle dokument. Hver linje indeholder én problemkode efterfulgt af et kolon og en læsbar beskrivelse. Returnerer en tom streng, når der ikke registreres problemer

Syntaks

Delphi

Function TPDFlib.GetPDFUADiagnostics: WideString;

ActiveX

Function PDFlib::GetPDFUADiagnostics() As String

DLL

const wchar_t * DLGetPDFUADiagnostics(int InstanceID);

Problemkoder

PDF-VERSION-LOWDokumentets PDF-version (som registreret i filheaderen) er under 1.7. PDF/UA-1 er defineret i forhold til ISO 32000-1:2008 (PDF 1.7). Kald SetPDFUAMode for automatisk at hæve versionen til 1.7.
MARKED-FALSEMarkInfo/Marked er ikke angivet til sand; dokumentet er ikke en mærket PDF.
LANG-MISSINGDokumentkatalogets /Lang-post mangler eller er tom. ISO 14289-1 §7.3 kræver en erklæring om naturligt sprog.
DISPLAYDOCTITLE-FALSEViewerPreferences/DisplayDocTitle er ikke true. ISO 14289-1 §7.1 kræver dette, så dokumenttitlen vises på titellinjen
DOCINFO-TITLE-MISSINGPosten /Title i dokumentinformationsordbogen mangler eller er tom. PDF/UA-1 kræver en dokumenttitel, så hjælpeteknologi kan meddele den, når dokumentet åbnes. Denne kontrol supplerer DISPLAYDOCTITLE-FALSE: Den kontrol bekræfter, at titlen vises i fremviseren; denne kontrol bekræfter, at selve titelværdien findes. Kald SetInformation med nøglen Title for at angive den.
XMP-NO-PDFUAIDXMP-metadatastrømmen indeholder ikke en pdfuaid:part-post. Krævet af ISO 14289-1 §7.2.
ANNOT-NO-CONTENTS:NN ikke-undtagne anmærkninger (undtagen undertyperne Widget, PrinterMark og TrapNet) mangler en Contents-post. Krævet af ISO 14289-1 §7.18.1.
EMBED-NO-AFR:NN integrerede filer mangler en AFRelationship-post i deres filspecifikationsordbog. Krævet af ISO 14289-1 §7.11.
FIGURE-NO-ALT:NN Figure- eller Formula-strukturelementer har ingen Alt-tekstværdi. ISO 14289-1 §7.5 og ISO 32000-1 §14.9.3 kræver alternative beskrivelser af både grafiske figurer og matematiske formler
HEADING-LEVEL-SKIP:NN spring i overskriftsniveau blev registreret i dokumentrækkefølgen (f.eks. en H1 umiddelbart efterfulgt af en H3, hvor H2 springes over). ISO 14289-1 §7.1 og WCAG 2.x-succeskriterium 1.3.1 kræver, at overskrifter indlejres uden mellemrum.
STRUCT-UNCLOSED:NN strukturelementer er stadig åbne, fordi EndTag ikke blev kaldt det korrekte antal gange. Disse elementer kommer til at mangle i strukturtræets rod
TABLE-TH-NO-SCOPE:NN TH-strukturelementer (tabeloverskriftsceller) har ingen Scope-attribut. ISO 32000-1 §14.8.4.3.4 Table 337 definerer Scope (Row, Column eller Both) som den attribut, der beskriver, hvilke dataceller hver overskriftscelle gælder for. Uden den kan kompenserende teknologi ikke pålideligt knytte overskrifter til dataceller i komplekse tabeller eller tabeller med flere overskrifter. Kald SetStructElemScope (eller AddTagAttribute med Owner='Table', Name='Scope') umiddelbart efter mærkning af hvert TH-element.
FORM-NO-TOOLTIP:NN interaktive formularfelter (Widget-annotationer) mangler en TU-post (værktøjstip/tilgængeligt navn). ISO 14289-1 §7.18.4 kræver, at alle interaktive formularfelter har en TU-post, så hjælpeteknologi kan oplyse brugeren om feltets formål. /TU er det tilgængelige navn, som skærmlæsere læser højt; det er forskelligt fra /T (det delvise feltnavn, der bruges programmatisk). Indstil TU-værdien ved oprettelse eller indlæsning af formularfelter
LIST-STRUCT:NN LI- eller LBody-strukturelementer forekommer uden for deres påkrævede overordnede element. ISO 32000-1 §14.8.4.4 kræver, at LI er et direkte underordnet element af L (liste), og at LBody er et direkte underordnet element af LI (listeelement). Fejlformet listeindlejring forhindrer hjælpeteknologi i at navigere korrekt i lister. Kontrollér rækkefølgen af BeginTag-/EndTag-kald for alle listerelaterede elementer
ROLEMAP-UNMAPPED:NN brugerdefinerede strukturelementtyper forekommer i dokumentet, men har ingen post i /RoleMap-ordbogen. ISO 14289-1 §7.1 og ISO 32000-1 §14.7.3 kræver, at hver ikke-standardiseret strukturtype knyttes til en PDF-standardtype, så kompenserende teknologi kan afgøre, hvordan elementet skal håndteres. Kald AddRoleMap for hver brugerdefineret type før lagring. Problembeskrivelsen viser navnene på de ikke-tilknyttede typer.
SUSPECTS-TRUEMarkInfo/Suspects er sat til true. ISO 14289-1 §7.1 kræver, at filer, der hævder PDF/UA-overensstemmelse, har værdien Suspects sat til false. Værdien true markerer, at taggingen vides at indeholde fejl. Kald SetMarkInfo, når dokumentet er fuldt tagget, for at nulstille Suspects til false.
ROLEMAP-STANDARD-REMAP:NN standardstrukturtyper forekommer som nøglen "custom" i /RoleMap og ville blive tilknyttet igen ved lagring. ISO 14289-1 §7.1 forbyder gentilknytning af standardtags defineret i ISO 32000-1 §14.8.4 (P, H1..H6, Figure, Table osv.). Detaljelinjen viser navnene på de problematiske standardtags. Fjern de berørte kald til AddRoleMap
DC-TITLE-MISSINGDublin Core-feltet dc:title i XMP-metadatastrømmen mangler eller er tomt. ISO 14289-1 §7.1 kræver, at Metadata-strømmen indeholder en dc:title-post, som tydeligt identificerer dokumentet. Denne kontrol er adskilt fra DOCINFO-TITLE-MISSING, som kun undersøger posten /Info /Title. Kald SetPDFUAMode for at kopiere /Info-titlen til XMP-pakken
TRAPNET-ANNOT:NDer blev fundet N TrapNet-annotationer på dokumentets sider. ISO 14289-1 §7.18.2 forbyder udtrykkeligt TrapNet i filer, der overholder PDF/UA-1. Fjern de pågældende annotationer før lagring
ANNOT-PAGE-NO-TABS-S:NN sider indeholder en eller flere annotationer, men deres sideordbog indstiller ikke /Tabs /S. ISO 14289-1 §7.18.3 kræver, at tabulatorrækkefølgen på sådanne sider følger strukturtræet, hvilket angives med /Tabs /S. Indstil /Tabs /S i sideordbogen for hver side, der indeholder annotationer
ENCRYPT-NO-ACCESSDokumentet er krypteret, og PDFUAMode er aktiv, men bit 10 i krypteringens /P-tilladelsesnøgle (maske $200, tilgængelighedsudtræk) er ryddet. ISO 14289-1 §7.16 kræver, at alle krypterede kompatible filer tillader tilgængelighedsudtræk. Når PDFUAMode angives, før Encrypt kaldes, gennemtvinges bitten automatisk. Når kaldene foretages i omvendt rækkefølge, findes krypteringsordbogen allerede med den gamle /P-værdi — kald Encrypt igen, så ordbogen udsendes på ny
FIRST-HEADING-NOT-H1Det første overskriftselement i dokumentrækkefølgen er ikke H1 (H-sentinellen for stærk struktur tæller også som niveau 1). ISO 14289-1 §7.4.2 kræver, at det første overskriftstag i et dokument uden stærk struktur er H1. Detaljelinjen angiver det problematiske niveau.
WIDGET-NO-STRUCTPARENT:NN Widget-annoteringer mangler en /StructParent-post. ISO 14289-1 §7.18.4 kræver, at Widget-annoteringer er indlejret i et Form-strukturmærke; uden /StructParent kan Widget-elementet slet ikke nås fra strukturtræet. Detaljelinjen angiver antallet. Dette er en delvis kontrol — fuld verificering af, at det opløste overordnede elements /S er Form, er endnu ikke implementeret.
LIST-NO-NUMBERING:NN L-strukturelementer (liste) mangler attributten ListNumbering. ISO 14289-1 §7.6 kræver, at hvert L-tag erklærer sin nummereringstype via denne attribut (gyldige værdier ifølge ISO 32000-1, tabel 347, er None, Disc, Circle, Square, Decimal, UpperRoman, LowerRoman, UpperAlpha, LowerAlpha). Kald SetStructElemListNumbering, efter at hvert L-tag er åbnet.
MULTIPLE-H-CHILDREN:NN strukturetrænoder indeholder mere end ét direkte H-underelement (generisk overskrift). ISO 14289-1 §7.4.4 forbyder dette — opdel den overordnede sektion, eller erstat H-tags med nummererede H1..H6-sekvenser.

Returværdi

En streng med problembeskrivelser adskilt af linjeskift eller en tom streng, hvis der ikke registreres nogen overensstemmelsesproblemer.

Bemærkninger

Denne funktion er beregnet som et diagnostisk hjælpemiddel til udviklere. Den kontrollerer dokumentets aktuelle tilstand i hukommelsen og rapporterer problemer, der kan medføre fejl ved PDF/UA-1-validering. Kald den efter indlæsning eller opbygning af et dokument for at identificere problemer før lagring

Når SetPDFUAMode er aktiv, og dokumentet gemmes, rettes flere problemer (ANNOT-NO-CONTENTS, EMBED-NO-AFR) automatisk under lagring. GetPDFUADiagnostics rapporterer tilstanden før lagring; problemer, der automatisk rettes ved lagring, vises stadig, hvis de er til stede før lagringen

Denne funktion ændrer 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