SetStructElemID

Tagged PDF, Accessibility

Description

Wijst een unieke identiteitsreeks toe aan het structuurelement dat momenteel geopend is op de tagstapel; de ID wordt geschreven als de vermelding /ID in de structuurelementdictionary en wordt geïndexeerd in de /IDTree-namenboom van het document, zodat andere elementen ernaar kunnen verwijzen (bijvoorbeeld via het attribuut /Headers van tabelcellen); roep dit aan na BeginTag of BeginTagEx en vóór EndTag

Syntax

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);

Parameters

IDEen niet-lege tekenreeks die dit structuurelement uniek identificeert binnen het document; kies een ID die betekenisvol en uniek is in het hele document, zoals TH-Col-1, TH-Row-2 of een GUID-achtige tekenreeks

Return value

Retourneert 1 bij succes; retourneert 0 als er geen document open is, er momenteel geen tag open is op de tag-stack of ID leeg is

Remarks

De vermelding /ID is gedefinieerd in ISO 32000-1 §14.7.3.4; alle element-ID's worden verzameld in een platte naamstructuur /IDTree op de hoofdstructuur wanneer het document wordt opgeslagen; hierdoor kunnen toegankelijkheidstools en andere elementen elementen op ID opzoeken; de vermeldingen in de /IDTree zijn alfabetisch gesorteerd op ID-string

Een veelvoorkomend scenario is het taggen van tabelkopcellen (TH) met ID's zodat datacellen (TD) zichzelf kunnen associëren met de juiste koppen via SetStructElemHeaders; deze associatie is vereist voor complexe tabellen onder PDF/UA-1 (ISO 14289-1 §7.10) en WCAG 2.x Success Criterion 1.3.1

Als dezelfde ID aan meerdere structuurelementen wordt toegewezen, is het gedrag ongedefinieerd; slechts 茅茅n element per unieke ID mag een bepaalde ID-tekenreeks ontvangen

Example

// 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;

See also

SetStructElemHeaders, AddTagAttribute, BeginTag, EndTag, SetPDFUAMode