SetStructElemID

Tagged PDF, saavutettavuus

Kuvaus

Antaa tagipinossa avoinna olevalle rakennetyylielementille yksilöllisen identiteettimerkkijonon. ID kirjoitetaan rakennetyylielementin sanakirjan /ID-tietueeksi ja indeksoidaan asiakirjan /IDTree-nimipuuhun, jotta muut elementit voivat viitata siihen (esimerkiksi taulukkosolujen /Headers-attribuutilla). Kutsu tätä BeginTag- tai BeginTagEx-kutsun jälkeen ja ennen EndTag-kutsua

Syntaksi

Delphi

Function TPDFlib.SetStructElemID(Const ID: WideString): Integer;

ActiveX

Function PDFlib::SetStructElemID(ID As String) As Long

DLL

int DLSetStructElemID(int InstanceID, const wchar_t * ID);

Parametrit

IDEi-tyhjä merkkijono, joka yksilöi tämän rakennetyylielementin asiakirjassa. Valitse koko asiakirjassa merkityksellinen ja yksilöllinen ID, kuten TH-Col-1, TH-Row-2 tai GUID-tyyppinen merkkijono

Paluuarvo

Palauttaa arvon 1 onnistuessaan. Palauttaa arvon 0, jos mikään asiakirja ei ole avoinna, tagipinossa ei ole avointa tagia tai ID on tyhjä

Huomautukset

/ID-tietue on määritelty standardissa ISO 32000-1 §14.7.3.4. Kaikki elementtitunnukset kootaan tasaiseksi /IDTree-nimipuuki rakennepuun juurelle asiakirjan tallennuksen yhteydessä; näin esteellisyystyökalut ja muut elementit voivat hakea elementtejä tunnuksella. /IDTree-tietueet lajitellaan aakkosjärjestykseen ID-merkkijonon mukaan

Yleinen käyttötarkoitus on tagata taulukon otsikkosolut (TH) tunnuksilla, jotta datasolut (TD) voivat yhdistää itsensä oikeisiin otsikoihin funktiolla SetStructElemHeaders. Tämä yhdistys vaaditaan monimutkaisilta taulukoilta PDF/UA-1:n (ISO 14289-1 §7.10) ja WCAG 2.x Success Criterion 1.3.1:n nojalla

Jos sama ID annetaan usealle rakennetyylielementille, käyttäytyminen on määrittelemätöntä; kullekin ID-merkkijonolle pitäisi saada vain yksi elementti

Esimerkki

// Tag a column header cell with an ID for later /Headers reference
PDFlib.BeginTag('TH', 'Product Name', '', '');
PDFlib.SetStructElemID('TH-ProductName');
PDFlib.SetStructElemScope('Column');
PDFlib.DrawText('Product Name', 100, 700);
PDFlib.EndTag;

PDFlib.BeginTag('TH', 'Price', '', '');
PDFlib.SetStructElemID('TH-Price');
PDFlib.SetStructElemScope('Column');
PDFlib.DrawText('Price', 250, 700);
PDFlib.EndTag;

// Tag a data cell referencing both header cells
PDFlib.BeginTag('TD', '', '', '');
PDFlib.SetStructElemHeaders('TH-ProductName,TH-Price');
PDFlib.DrawText('Widget A', 100, 680);
PDFlib.EndTag;

Katso myös

SetStructElemHeaders, AddTagAttribute, BeginTag, EndTag, SetPDFUAMode