SetStructElemWritingMode
Tagged PDF, Accessibility
Description
在标记栈上当前打开的结构元素上设置 /WritingMode 属性(布局属性所有者);书写模式声明元素内文本的主要书写方向,并影响辅助技术如何解释阅读顺序;等效于以 Owner=Layout、Name=WritingMode 并将模式名称作为值调用 AddTagAttribute
Syntax
Delphi
Function TPDFlib.SetStructElemWritingMode(Const WritingMode: WideString): Integer;
ActiveX
Function PDFlib::SetStructElemWritingMode(WritingMode As String) As Long
DLL
int DLSetStructElemWritingMode(int InstanceID, const wchar_t * WritingMode);
Parameters
| WritingMode | 元素的书写方向,必须是以下值之一(区分大小写): LrTb — 从左到右,从上到下(默认值;拉丁语、西里尔语、希腊语和大多数脚本) RlTb — 从右到左,从上到下(阿拉伯语、希伯来语) TbRl — 从上到下,从右到左(传统中日韩垂直文本) |
|---|
Return value
成功时返回 1;如果未打开任何文档或标记栈上当前未打开任何标记,则返回 0
Remarks
在 BeginTag 或 BeginTagEx 之后以及 EndTag 之前调用此函数;/WritingMode 属性在 ISO 32000-1 §14.8.5.4.2(布局属性所有者,表 340)中定义
当文档全程使用一致的书写方向时,无需对每个元素设置 /WritingMode —— 当该属性不存在时适用默认的 LrTb;对书写方向与周围内容不同的块级元素显式设置该属性,例如嵌入在英语段落中的希伯来语引文
PDF/UA-1 (ISO 14289-1 §7.2) 要求可以明确确定每段文本的自然语言;/WritingMode 补充了 /Lang 属性(SetStructElemLang):/Lang 声明所说的语言,而 /WritingMode 声明辅助技术在呈现时应使用的物理书写方向
Example
// Arabic paragraph — right-to-left writing direction
PDFlib.BeginTagEx('P', '', '', 'ar-SA');
PDFlib.SetStructElemWritingMode('RlTb');
PDFlib.DrawText('...Arabic text...', 450, 700);
PDFlib.EndTag;
// Vertical CJK heading
PDFlib.BeginTagEx('H1', '', '', 'zh-TW');
PDFlib.SetStructElemWritingMode('TbRl');
PDFlib.DrawText('...CJK vertical text...', 500, 700);
PDFlib.EndTag;See also
SetStructElemBBox, SetStructElemLang, AddTagAttribute, BeginTag, EndTag