SetStructElemIDA

標籤式 PDF、無障礙

描述

結尾的 A 表示 ANSI(char)DLL 進入點,ActiveX/COM 介面僅公開 Unicode 形式。其行為與 SetStructElemID 相同,字串引數會依據目前的 SetAnsiMode 字碼頁進行解譯

為標籤堆疊上目前開啟的結構元素指派唯一的身分字串。ID 會寫成結構元素字典中的 /ID 項目,並登錄到文件的 /IDTree 名稱樹,讓其他元素可以參照它(例如透過表格儲存格的 /Headers 屬性)。請在 BeginTag 或 BeginTagEx 之後、EndTag 之前呼叫

語法

Delphi

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

DLL

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

參數

ID在文件內唯一識別此結構元素的非空字串。請挑選在整份文件中有意義且唯一的 ID,例如 TH-Col-1、TH-Row-2 或 GUID 形式的字串。

傳回值

成功傳回 1。沒有開啟的文件、標籤堆疊上沒有開啟中的標籤,或 ID 為空時傳回 0。

備註

/ID 項目定義於 ISO 32000-1 §14.7.3.4。儲存文件時,所有元素 ID 會收進結構樹根上一個扁平的 /IDTree 名稱樹;無障礙工具與其他元素便能依 ID 查找元素。/IDTree 的項目依 ID 字串依字母排序。

常見用法是為表格表頭儲存格(TH)加上 ID,讓資料儲存格(TD)能透過 SetStructElemHeaders 關聯到正確的表頭。複雜表格在 PDF/UA-1(ISO 14289-1 §7.10)與 WCAG 2.x Success Criterion 1.3.1 下都需要這種關聯。

同一個 ID 指派給多個結構元素時行為未定義;每個唯一的 ID 字串應只指派給一個元素

範例

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

另見

SetStructElemHeaders, AddTagAttribute, BeginTag, EndTag, SetPDFUAMode