SetStructElemLangA

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

説明

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

タグスタック上で現在構築中の構造要素に /Lang エントリを設定します。言語タグはこの要素とすべての子孫について文書レベル言語を上書きし、複数言語文書がコンテンツ範囲ごとに正しい自然言語を宣言できるようにします

構文

Delphi

Function DLSetStructElemLangA(InstanceID: Integer; Lang: PAnsiChar): Integer;

DLL

int DLSetStructElemLangA(int InstanceID, const char * Lang);

パラメータ

Langen-US、fr、de-CH、zh-Hant-TW などの BCP 47 言語タグ文字列。以前に設定した値をクリアして文書レベル言語を継承するには空文字列を渡します

戻り値

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

備考

対象要素がタグスタックの最上位にある間に、BeginTag または BeginTagEx の直後にこの関数を呼び出します。これは空でない Lang 引数を BeginTagEx に渡すことと同等ですが、言語が要素型とは別に決定される場合には、より便利なことがあります

要素レベルの /Lang エントリは ISO 32000-1 §14.9.2 で定義されています。このエントリは構造要素に適用され、継承によって自身で /Lang を宣言していないすべての子要素にも適用されます。スクリーンリーダーは文書を読み上げる際に、このエントリを使用して適切な音声合成ボイスまたは言語エンジンを選択します

PDF/UA-1(ISO 14289-1 §7.3)では、すべての自然言語コンテンツを識別する必要がある。SetDocumentLanguage または SetPDFUAMode で設定する文書レベルの /Lang は主言語を対象とし、SetStructElemLang は主言語と異なる言語のセクションを対象とする

例

// A French phrase embedded in an English document
PDFlib.SetPDFUAMode('en-US');
// ... English content
PDFlib.BeginTag('P', '', '');
PDFlib.SetStructElemLang('fr');
PDFlib.TextOut(x, y, 'Bonjour le monde');
PDFlib.EndTag;

関連項目

BeginTagEx, SetDocumentLanguage, SetPDFUAMode, SetStructElemActualText, GetPDFUADiagnostics