SetStructElemLang
Tagged PDF & Accessibility
Description
在标记栈上当前正在构建的结构元素上设置 /Lang 条目;语言标签会覆盖此元素及其所有后代的文档级语言,允许混合语言的文档为每个内容范围声明正确的自然语言
Syntax
Delphi
Function TPDFlib.SetStructElemLang(Const Lang: WideString): Integer;
ActiveX
Function PDFlib::SetStructElemLang(Lang As String) As Long
DLL
int DLSetStructElemLang(int InstanceID, const wchar_t * Lang);
Parameters
| Lang | 一个 BCP 47 语言标签字符串,例如 en-US、fr、de-CH 或 zh-Hant-TW;传入空字符串以清除之前设置的值并继承文档级语言 |
|---|
Return value
成功时返回 1,如果当前未打开任何结构元素或未选择文档则返回 0
Remarks
在目标元素位于标记栈顶部时,立即在 BeginTag 或 BeginTagEx 之后调用此函数 It is equivalent to passing a non-empty Lang argument to BeginTagEx, but may be more convenient when the language is determined separately from the element type.
元素级的 /Lang 条目在 ISO 32000-1 §14.9.2 中定义;它应用于结构元素,并通过继承应用于所有自身未声明 /Lang 的子元素;屏幕阅读器在朗读文档时使用此条目选择合适的文本转语音或语言引擎
PDF/UA-1 (ISO 14289-1 §7.3) 要求识别所有的自然语言内容;通过 SetDocumentLanguage 或 SetPDFUAMode 设置的文档级 /Lang 涵盖主要语言,而 SetStructElemLang 涵盖语言与主要语言不同的部分
Example
// 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;See also
BeginTagEx, SetDocumentLanguage, SetPDFUAMode, SetStructElemActualText, GetPDFUADiagnostics