SetStructElemIDA

PDF con tag, accessibilità

Descrizione

Il suffisso A indica l'entry point DLL ANSI (char); l'interfaccia ActiveX/COM espone soltanto la forma Unicode. Il comportamento è identico a SetStructElemID e gli argomenti stringa vengono interpretati usando la code page corrente di SetAnsiMode

Assegna un'identità univoca all'elemento aperto, scritta in /ID e indicizzata nell'albero /IDTree del documento's per riferimenti quali /Headers. Chiamare tra BeginTag o BeginTagEx e EndTag

Sintassi

Delphi

Function DLSetStructElemIDA(InstanceID: Integer; ID: PAnsiChar): Integer;

DLL

int DLSetStructElemIDA(int InstanceID, const char * ID);

Parametri

IDStringa non vuota che identifica in modo univoco questo elemento di struttura nel documento. Scegliere un ID significativo e univoco nell'intero documento, ad esempio TH-Col-1, TH-Row-2 o una stringa simile a un GUID

Valore restituito

Restituisce 1 in caso di successo. Restituisce 0 se nessun documento è aperto, nessun tag è attualmente aperto nello stack dei tag oppure ID è vuoto.

Note

La voce /ID è definita in ISO 32000-1 §14.7.3.4. Al salvataggio del documento, tutti gli ID degli elementi vengono raccolti in un albero dei nomi /IDTree piatto nella radice dell'albero della struttura; ciò consente agli strumenti di accessibilità e agli altri elementi di cercare gli elementi in base all'ID. Le voci /IDTree vengono ordinate alfabeticamente in base alla stringa ID

Un caso d'uso comune consiste nell'applicare tag alle celle di intestazione (TH) con ID, affinché le celle dati (TD) possano associarsi alle intestazioni corrette tramite SetStructElemHeaders. L'associazione è richiesta per le tabelle complesse da PDF/UA-1 (ISO 14289-1 §7.10) e dal criterio di successo WCAG 2.x 1.3.1

Se lo stesso ID viene assegnato a più elementi di struttura, il comportamento è indefinito; una stringa ID deve essere assegnata a un solo elemento univoco.

Esempio

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

Vedere anche

SetStructElemHeaders, AddTagAttribute, BeginTag, EndTag, SetPDFUAMode