SetStructElemIDA

Tagged PDF, Barrierefreiheit

Beschreibung

Das nachgestellte A kennzeichnet den ANSI-DLL-Einstiegspunkt (char); die ActiveX/COM-Oberfläche stellt nur die Unicode-Form bereit. Das Verhalten entspricht SetStructElemID, und Zeichenfolgenargumente werden mit der aktuellen Codepage von SetAnsiMode interpretiert

Weist dem aktuell im Tag-Stapel geöffneten Strukturelement eine eindeutige Identitätszeichenfolge zu. Die ID wird als Eintrag /ID in das Strukturelementwörterbuch geschrieben und im Namensbaum /IDTree des Dokuments indiziert, damit andere Elemente darauf verweisen können, beispielsweise über das Attribut /Headers von Tabellenzellen. Rufen Sie dies nach BeginTag oder BeginTagEx und vor EndTag auf

Syntax

Delphi

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

DLL

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

Parameter

IDEine nicht leere Zeichenfolge, die dieses Strukturelement innerhalb des Dokuments eindeutig kennzeichnet. Wählen Sie eine im gesamten Dokument aussagekräftige und eindeutige ID, beispielsweise TH-Col-1, TH-Row-2 oder eine GUID-ähnliche Zeichenfolge

Rückgabewert

Gibt bei Erfolg 1 zurück. Gibt 0 zurück, wenn kein Dokument geöffnet ist, derzeit kein Tag auf dem Tag-Stapel geöffnet ist oder ID leer ist

Anmerkungen

Der Eintrag /ID ist in ISO 32000-1 §14.7.3.4 definiert. Beim Speichern des Dokuments werden alle Element-IDs in einem flachen Namensbaum /IDTree am Stamm des Strukturbaums gesammelt; dadurch können Barrierefreiheitswerkzeuge und andere Elemente Elemente anhand ihrer ID nachschlagen. Die /IDTree-Einträge werden alphabetisch nach ID-Zeichenfolge sortiert

Ein häufiger Anwendungsfall ist das Kennzeichnen von Tabellenkopfzellen (TH) mit IDs, damit Datenzellen (TD) sich über SetStructElemHeaders den richtigen Kopfzellen zuordnen können. Diese Zuordnung ist für komplexe Tabellen nach PDF/UA-1 (ISO 14289-1 §7.10) und WCAG 2.x Erfolgskriterium 1.3.1 erforderlich.

Wenn dieselbe ID mehreren Strukturelementen zugewiesen wird, ist das Verhalten undefiniert; eine bestimmte ID-Zeichenfolge sollte nur ein Element pro eindeutiger ID erhalten

Beispiel

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

Siehe auch

SetStructElemHeaders, AddTagAttribute, BeginTag, EndTag, SetPDFUAMode