SetStructElemID

PDF etiquetado, Accesibilidad

Descripción

Asigna una cadena de identidad única al elemento de estructura abierto actualmente en la pila de etiquetas. El identificador se escribe como entrada /ID en el diccionario del elemento de estructura y se indexa en el árbol de nombres /IDTree del documento para que otros elementos puedan hacer referencia a él (por ejemplo, mediante el atributo /Headers de las celdas de tabla). Llame a esta función después de BeginTag o BeginTagEx y antes de EndTag

Sintaxis

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

Parámetros

IDCadena no vacía que identifica de forma única este elemento de estructura dentro del documento. Elija un ID que sea significativo y único en todo el documento, como TH-Col-1, TH-Row-2 o una cadena similar a un GUID

Valor devuelto

Devuelve 1 en caso de éxito. Devuelve 0 si no hay ningún documento abierto, ninguna etiqueta abierta actualmente en la pila o ID está vacío

Observaciones

La entrada /ID se define en ISO 32000-1 §14.7.3.4. Todos los ID de elementos se reúnen en un árbol de nombres /IDTree plano en la raíz del árbol de estructura al guardar el documento; esto permite que las herramientas de accesibilidad y otros elementos busquen elementos por ID. Las entradas de /IDTree se ordenan alfabéticamente por cadena de ID

Un uso habitual es etiquetar cabeceras TH con IDs para que celdas TD se asocien mediante SetStructElemHeaders, obligatorio en tablas complejas PDF/UA-1 y WCAG 2.x 1.3.1

Si se asigna el mismo identificador a varios elementos de estructura, el comportamiento no está definido; cada cadena de identificador única solo debe asignarse a un elemento

Ejemplo

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

Véase también

SetStructElemHeaders, AddTagAttribute, BeginTag, EndTag, SetPDFUAMode