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

IDEn 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