SetStructElemActualTextA

タグ付き PDF & アクセシビリティ

説明

末尾の A は ANSI(char)DLL エントリポイントを示し、ActiveX/COM の表面では Unicode 形式のみ公開される。動作は SetStructElemActualText と同一で、文字列引数は現在の SetAnsiMode コードページを使って解釈される

タグスタック上で現在構築中の構造要素に /ActualText エントリを設定します。ActualText は要素が表す正確な Unicode テキストを提供し、リーダーソフトウェアが PDF コンテンツストリームから抽出するテキストを上書きします

コンテンツストリームにレンダリングされたグリフが意図した読み順の文字へ直接対応しない場合に、この関数を使用します。たとえば 2 文字シーケンス ff、fi、fl として読むべき合字グリフ(ff、fi、fl)です。ActualText がないと、テキスト抽出ツールとスクリーンリーダーはこれらのグリフを誤って出力する場合があります

構文

Delphi

Function DLSetStructElemActualTextA(InstanceID: Integer; ActualText: PAnsiChar): Integer;

DLL

int DLSetStructElemActualTextA(int InstanceID, const char * ActualText);

パラメータ

ActualText現在の構造要素に関連付ける Unicode テキスト文字列です。以前に設定した値をクリアするには空文字列を渡します

戻り値

成功時は 1、現在開いている構造要素がないか文書が選択されていない場合は 0 を返します

備考

対象要素がタグスタックの最上位にある間に、BeginTag または BeginTagEx の直後でこの関数を呼び出します

ActualText と AltText は異なる目的に使用されます。AltText(BeginTag の AltText パラメーターで設定)は、視覚コンテンツをレンダリングできない場合に支援技術が使用する、要素全体の代替表現です。ActualText はコンテンツストリームのテキスト抽出を補います。要素から抽出される文字列を置き換えますが、レンダリングは抑止しません。両方に対応するスクリーンリーダーは、通常 ActualText が存在すると読み上げ出力に使用します

ISO 32000-1 §14.9.4 は ActualText を構造要素辞書上の PDF テキスト文字列エントリとして定義しています。PDF/UA-1(ISO 14289-1 §7.1)はテキストコンテンツが抽出可能かつ正確であることを要求します。直接抽出すると曖昧または不正確になるグリフシーケンスでは、ActualText がこの要件を満たす標準機構です

例

// Tag a ligature glyph so that text extraction yields "fi"
PDFlib.BeginTag('Span', '', '');
PDFlib.SetStructElemActualText('fi');
PDFlib.TextOut(x, y, #$FB01);   // U+FB01 LATIN SMALL LIGATURE FI
PDFlib.EndTag;

関連項目

BeginTag, BeginTagEx, SetStructElemID, AddTagAttribute, GetPDFUADiagnostics