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 | 文書内でこの構造要素を一意に識別する空でない文字列。TH-Col-1、TH-Row-2、または GUID 形式の文字列など、文書全体で意味があり一意となる ID を選択する |
|---|
戻り値
成功時は 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 ごとに 1 つの要素だけが指定した 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