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

參數

LangBCP 47 語言標籤字串,例如 en-US、fr、de-CH 或 zh-Hant-TW。傳入空字串可清除先前設定,改為繼承文件層級語言。

傳回值

成功傳回 1;目前沒有開啟中的結構元素或未選取文件時傳回 0

備註

在 BeginTag 或 BeginTagEx 之後立即呼叫此函式,此時目標元素位於標籤堆疊頂端。效果等同在 BeginTagEx 傳入非空 Lang 參數,但語言與元素類型分開決定時,這樣呼叫可能更方便。

元素層級的 /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