SetStructElemIDA
Taggad PDF, tillgänglighet
Beskrivning
Det avslutande A:et betecknar ANSI (char)-DLL-ingångspunkten; ActiveX/COM-ytan exponerar bara Unicode-formen. Beteendet är identiskt med SetStructElemID och strängargument tolkas med aktuell SetAnsiMode-kod sida
Tilldelar en unik identitetssträng till det strukturelement som för tillfället är öppet på taggstacken. ID:t skrivs som /ID-posten i strukturelementdictionaryn och indexeras i dokumentets /IDTree-namnträd så att andra element kan referera till det (till exempel via /Headers-attributet på tabellceller). Anropa detta efter BeginTag eller BeginTagEx och före EndTag
Syntax
Delphi
Function DLSetStructElemIDA(InstanceID: Integer; ID: PAnsiChar): Integer;
DLL
int DLSetStructElemIDA(int InstanceID, const char * ID);
Parametrar
| ID | En icke-tom sträng som unikt identifierar det här strukturelementet inom dokumentet. Välj ett ID som är meningsfullt och unikt i hela dokumentet, som TH-Col-1, TH-Row-2 eller en GUID-liknande sträng |
|---|
Returvärde
Returnerar 1 vid lyckat anrop. Returnerar 0 om inget dokument är öppet, ingen tagg för tillfället är öppen på taggstacken, eller ID är tomt
Anmärkningar
Posten /ID är definierad i ISO 32000-1 §14.7.3.4. Alla element-ID:n samlas i ett platt /IDTree-namnträd på strukturträdets rot när dokumentet sparas; det låter tillgänglighetsverktyg och andra element slå upp element via ID. /IDTree-posterna sorteras alfabetiskt efter ID-sträng
Ett vanligt användningsfall är att tagga tabellrubrikceller (TH) med ID så att dataceller (TD) kan koppla sig till rätt rubriker via SetStructElemHeaders. Denna koppling krävs för komplexa tabeller enligt PDF/UA-1 (ISO 14289-1 §7.10) och WCAG 2.x Success Criterion 1.3.1.
Om samma ID tilldelas flera strukturelement är beteendet odefinierat; endast ett element per unikt ID bör få en given ID-sträng
Exempel
// 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 även
SetStructElemHeaders, AddTagAttribute, BeginTag, EndTag, SetPDFUAMode