GetPDFUADiagnosticsA
PDF/UA & Akadálymentesség
Leírás
A záró A a DLL ANSI-belépési pontját (char) jelöli; az ActiveX/COM felület csak a Unicode formát teszi elérhetővé. A működés megegyezik ezzel: GetPDFUADiagnostics, és a sztringargumentumok a jelenlegi SetAnsiMode kódlap alapján értelmeződnek
Visszaadja az aktuális dokumentumban talált lehetséges PDF/UA-1 (ISO 14289-1) megfelelőségi problémák újsorokkal tagolt listáját. Minden sor egy problémakódot, majd kettőspontot és ember számára olvasható leírást tartalmaz. Ha nem észlel problémát, üres karakterláncot ad vissza
Szintaxis
Delphi
Function DLGetPDFUADiagnosticsA(InstanceID: Integer): PAnsiChar;
DLL
const char * DLGetPDFUADiagnosticsA(int InstanceID);
Hibakódok
| PDF-VERSION-LOW | A dokumentum PDF-verziója (a fájlfejlécben rögzítve) 1.7 alatti. A PDF/UA-1 az ISO 32000-1:2008 (PDF 1.7) szerint van meghatározva. Hívja meg a SetPDFUAMode metódust a verzió automatikus 1.7-re emeléséhez |
|---|---|
| MARKED-FALSE | A MarkInfo/Marked értéke nem true; a dokumentum nem címkézett PDF |
| LANG-MISSING | A dokumentumkatalógus /Lang bejegyzése hiányzik vagy üres. Az ISO 14289-1 §7.3 természetesnyelv-nyilatkozatot követel meg |
| DISPLAYDOCTITLE-FALSE | A ViewerPreferences/DisplayDocTitle értéke nem igaz. Az ISO 14289-1 §7.1 megköveteli, hogy a dokumentum címe megjelenjen a címsorban |
| DOCINFO-TITLE-MISSING | A dokumentuminformációs szótár /Title bejegyzése hiányzik vagy üres. A PDF/UA-1 dokumentumcímet követel meg, hogy a kisegítő technológia a dokumentum megnyitásakor bejelenthesse azt. Ez az ellenőrzés kiegészíti a DISPLAYDOCTITLE-FALSE ellenőrzést: az utóbbi azt vizsgálja, hogy a cím megjelenik-e a megjelenítőben; ez pedig azt, hogy maga a címérték létezik-e. A beállításához hívja a SetInformation függvényt Title kulccsal |
| XMP-NO-PDFUAID | Az XMP-metaadatadatfolyam nem tartalmaz pdfuaid:part bejegyzést. Az ISO 14289-1 §7.2 megköveteli |
| ANNOT-NO-CONTENTS:N | N nem mentesített jegyzetből (a Widget, PrinterMark és TrapNet altípusokat kivéve) hiányzik a Contents bejegyzés Az ISO 14289-1 §7.18.1 előírja |
| EMBED-NO-AFR:N | N beágyazott fájlból hiányzik az AFRelationship bejegyzés a fájlspecifikációs szótárban. Az ISO 14289-1 §7.11 szerint kötelező |
| FIGURE-NO-ALT:N | N Figure vagy Formula szerkezeti elemnek nincs Alt szövegértéke. Az ISO 14289-1 §7.5 és az ISO 32000-1 §14.9.3 alternatív leírást követel meg mind a grafikus ábrákhoz, mind a matematikai képletekhez |
| HEADING-LEVEL-SKIP:N | N címsorszint-ugrás észlelve dokumentumsorrendben, például egy H1-et közvetlenül H3 követ, átugorva a H2-t. Az ISO 14289-1 §7.1 és a WCAG 2.x 1.3.1 sikerkritériuma előírja, hogy a címsorok hézagok nélkül ágyazódjanak egymásba |
| STRUCT-UNCLOSED:N | N struktúraelem maradt nyitva, mert az EndTag hívása nem a megfelelő számú alkalommal történt meg. Ezek az elemek hiányozni fognak a struktúrafa gyökeréből |
| TABLE-TH-NO-SCOPE:N | Az N TH (táblázatfejléc-cella) struktúraelemeknek nincs Scope attribútuma. Az ISO 32000-1 §14.8.4.3.4 Table 337 a Scope (Row, Column vagy Both) attribútumot úgy határozza meg, mint amely leírja, hogy az egyes fejléc-cellák mely adatcellákra vonatkoznak. Enélkül a segítő technológiák összetett vagy többfejlécű táblázatokban nem tudják megbízhatóan társítani a fejléceket az adatcellákhoz. Minden TH elem címkézése után azonnal hívja a SetStructElemScope függvényt (vagy a(z) AddTagAttribute függvényt Owner='Table', Name='Scope' értékekkel) |
| FORM-NO-TOOLTIP:N | N interaktív űrlapmezőből (Widget jegyzetekből) hiányzik a TU (eszköztipp / akadálymentes név) bejegyzés. Az ISO 14289-1 §7.18.4 előírja, hogy minden interaktív űrlapmező rendelkezzen TU bejegyzéssel, hogy a segítő technológia közölhesse a mező célját a felhasználóval. A /TU az akadálymentes név, amelyet a képernyőolvasók felolvasnak; különbözik a /T értéktől (a programozottan használt részleges mezőnévtől). Űrlapmezők létrehozásakor vagy betöltésekor állítsa be a TU értékét |
| LIST-STRUCT:N | Az N LI vagy LBody szerkezeti elemek a kötelező szülőjükön kívül jelennek meg. Az ISO 32000-1 §14.8.4.4 előírja, hogy az LI az L (lista) közvetlen gyermeke, az LBody pedig az LI (listaelem) közvetlen gyermeke legyen. A hibás listafészkelés megakadályozza, hogy a segítő technológia helyesen navigáljon a listákban. Ellenőrizze minden listához kapcsolódó elem BeginTag / EndTag hívási sorrendjét |
| ROLEMAP-UNMAPPED:N | N egyéni struktúraelemtípus jelenik meg a dokumentumban, de nincs bejegyzése a /RoleMap szótárban. Az ISO 14289-1 §7.1 és az ISO 32000-1 §14.7.3 előírja, hogy minden nem szabványos struktúratípust szabványos PDF-típushoz kell leképezni, hogy a segítő technológia meg tudja határozni az elem kezelését. Mentés előtt minden egyéni típushoz hívja az AddRoleMap függvényt. A probléma leírása felsorolja a nem leképezett típusneveket |
| SUSPECTS-TRUE | A MarkInfo/Suspects értéke true. Az ISO 14289-1 §7.1 előírja, hogy a PDF/UA-megfelelőséget állító fájlok Suspects értéke false legyen. A true érték azt jelöli, hogy a címkézésről ismert, hogy hibákat tartalmaz. Miután a dokumentum teljesen címkézve van, hívja meg a SetMarkInfo metódust a Suspects false értékre való visszaállításához |
| ROLEMAP-STANDARD-REMAP:N | N szabványos struktúratípus a "custom" kulcsaként jelenik meg a /RoleMap alatt, és mentéskor újra lesz képezve. Az ISO 14289-1 §7.1 tiltja az ISO 32000-1 §14.8.4 által meghatározott szabványos címkék (P, H1..H6, Figure, Table stb.) újraképezését. A részletsor felsorolja a problémás szabványos címkeneveket. Távolítsa el az érintett AddRoleMap hívásokat |
| DC-TITLE-MISSING | Az XMP-metaadatfolyam Dublin Core dc:title eleme hiányzik vagy üres. Az ISO 14289-1 §7.1 előírja, hogy a Metadata folyam egy, a dokumentumot egyértelműen azonosító dc:title bejegyzést tartalmazzon. Ez az ellenőrzés elkülönül a DOCINFO-TITLE-MISSING ellenőrzéstől, amely csak a /Info /Title bejegyzést vizsgálja. A SetPDFUAMode hívásával az /Info cím átmásolható az XMP-csomagba |
| TRAPNET-ANNOT:N | N TrapNet jegyzet található a dokumentum oldalain. Az ISO 14289-1 §7.18.2 kifejezetten tiltja a TrapNet használatát PDF/UA-1 megfelelő fájlokban. Mentés előtt távolítsa el a problémás jegyzeteket |
| ANNOT-PAGE-NO-TABS-S:N | N oldal egy vagy több annotációt hordoz, de az oldalszótáruk nem állítja be a /Tabs /S értéket. Az ISO 14289-1 §7.18.3 megköveteli, hogy az ilyen oldalakon a tabulátorsorrend a struktúrafát kövesse, amelyet a /Tabs /S jelez. Állítsa be a /Tabs /S értéket az oldalszótárban minden annotációkat tartalmazó oldalhoz |
| ENCRYPT-NO-ACCESS | A dokumentum titkosított és a PDFUAMode aktív, de a titkosítási /P jogosultsági kulcs 10. bitje (maszk: $200, akadálymentesítési kinyerés) törölve van. Az ISO 14289-1 §7.16 előírja, hogy minden titkosított, megfelelő fájl engedélyezze az akadálymentesítési kinyerést. Ha a PDFUAMode beállítása az Encrypt meghívása előtt történik, a bit automatikusan bekapcsol. Ellenkező hívási sorrend esetén a titkosítási szótár már a régi /P értékkel van érvényben — hívja meg újra az Encrypt függvényt, hogy a szótár ismét kiíródjon |
| FIRST-HEADING-NOT-H1 | A dokumentumsorrend szerinti első címelem nem H1 (az erősen strukturált H jelzőérték szintén 1. szintnek számít). Az ISO 14289-1 §7.4.2 előírja, hogy a nem erősen strukturált dokumentum első címsorcímkéje H1 legyen. A részletsor megnevezi a hibás szintet |
| WIDGET-NO-STRUCTPARENT:N | N Widget megjegyzésből hiányzik a /StructParent bejegyzés. Az ISO 14289-1 §7.18.4 előírja, hogy a Widget megjegyzések Form struktúracímkébe legyenek ágyazva; /StructParent nélkül a Widget egyáltalán nem érhető el a struktúrafából. A részletsor a darabszámot jelzi. Ez részleges ellenőrzés — annak teljes ellenőrzése, hogy a feloldott szülő /S értéke Form, még nincs megvalósítva |
| LIST-NO-NUMBERING:N | Az N L (lista) struktúraelemekből hiányzik a ListNumbering attribútum. Az ISO 14289-1 §7.6 előírja, hogy minden L címke ezzel az attribútummal deklarálja számozási stílusát (az ISO 32000-1 347. táblázata szerinti érvényes értékek: None, Disc, Circle, Square, Decimal, UpperRoman, LowerRoman, UpperAlpha, LowerAlpha). Minden L címke megnyitása után hívja meg a SetStructElemListNumbering függvényt |
| MULTIPLE-H-CHILDREN:N | Az N struktúrafacsomópont több mint egy közvetlen H (általános címsor) gyermekelemet tartalmaz. Az ISO 14289-1 §7.4.4 ezt tiltja — ossza fel a szülőszakaszt, vagy cserélje a H címkéket számozott H1..H6 sorozatokra |
Visszatérési érték
Problémaleírások újsorral elválasztott karakterlánca, vagy üres karakterlánc, ha nem észlelhetők megfelelőségi problémák
Megjegyzések
Ez a függvény fejlesztőknek szánt diagnosztikai segédeszköz; ellenőrzi a memóriában lévő dokumentum aktuális állapotát, és jelzi azokat a problémákat, amelyek PDF/UA-1 érvényesítési hibát okozhatnak; a dokumentum betöltése vagy létrehozása után hívja meg, hogy mentés előtt azonosítsa a problémákat
Ha a SetPDFUAMode aktív, és a dokumentum mentésre kerül, több probléma (ANNOT-NO-CONTENTS, EMBED-NO-AFR) automatikusan javításra kerül mentéskor. A GetPDFUADiagnostics a mentés előtti állapotot jelenti; a mentéskor automatikusan javítandó problémák akkor is szerepelnek a listában, ha a mentés előtt jelen vannak
Ez a függvény nem módosítja a dokumentumot
Példa
var
Diag: WideString;
begin
PDFlib.SetPDFUAMode('en-US');
// ... build document
Diag := PDFlib.GetPDFUADiagnostics;
if Diag <> '' then
ShowMessage('PDF/UA issues found:'#10 + Diag);
end;Lásd még
SetPDFUAMode, SetDocumentLanguage, SetEmbeddedFileAFRelationship