SetStructElemIDA
Tagged PDF, Tilgængelighed
Beskrivelse
Det afsluttende A angiver ANSI-indgangspunktet (char) i DLL'en; ActiveX/COM-overfladen eksponerer kun Unicode-formen. Adfærden er identisk med SetStructElemID, og strengargumenter fortolkes ud fra den aktuelle kodetabel i SetAnsiMode
Tildeler en entydig identitetsstreng til det strukturelement, der aktuelt er åbent på tagstakken. ID'et skrives som posten /ID i strukturelementets ordbog og indekseres i dokumentets navnetræ /IDTree, så andre elementer kan henvise til det (for eksempel via attributten /Headers for tabelceller). Kald dette efter BeginTag eller BeginTagEx og før EndTag.
Syntaks
Delphi
Function DLSetStructElemIDA(InstanceID: Integer; ID: PAnsiChar): Integer;
DLL
int DLSetStructElemIDA(int InstanceID, const char * ID);
Parametre
| ID | En ikke-tom streng, der entydigt identificerer dette strukturelement i dokumentet. Vælg et ID, der er meningsfuldt og entydigt i hele dokumentet, f.eks. TH-Col-1, TH-Row-2 eller en GUID-lignende streng. |
|---|
Returværdi
Returnerer 1 ved succes. Returnerer 0, hvis intet dokument er åbent, intet tag er åbent på tagstakken, eller ID er tomt.
Bemærkninger
Posten /ID er defineret i ISO 32000-1 §14.7.3.4. Alle element-ID'er samles i et fladt /IDTree-navnetræ på strukturtræets rod, når dokumentet gemmes; det giver tilgængelighedsværktøjer og andre elementer mulighed for at slå elementer op efter ID. /IDTree-posterne sorteres alfabetisk efter ID-streng.
En almindelig brug er at mærke tabeloverskriftsceller (TH) med ID'er, så dataceller (TD) kan knytte sig til de korrekte overskrifter via SetStructElemHeaders. Denne tilknytning er påkrævet for komplekse tabeller under PDF/UA-1 (ISO 14289-1 §7.10) og WCAG 2.x-succeskriterium 1.3.1
Hvis det samme ID tildeles flere strukturelementer, er adfærden udefineret; kun ét element pr. entydigt ID bør modtage en given ID-streng.
Eksempel
// 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;Se også
SetStructElemHeaders, AddTagAttribute, BeginTag, EndTag, SetPDFUAMode