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

IDEn 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