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 调用此函数,它等同于向 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