SetStructElemWritingMode
Структурированный PDF, Доступность
Описание
Задаёт атрибут /WritingMode (владелец Layout) элементу структуры, открытому на стеке тегов. Режим письма объявляет основное направление текста внутри элемента и влияет на трактовку порядка чтения ассистивными технологиями. Эквивалентно AddTagAttribute с Owner=Layout, Name=WritingMode и именем режима в качестве значения
Синтаксис
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);
Параметры
| WritingMode | Направление письма элемента. Должно быть одно из следующих значений (с учетом регистра): LrTb — слева направо, сверху вниз (по умолчанию; латиница, кириллица, греческий и большинство других письменностей) RlTb — справа налево, сверху вниз (арабский, иврит) TbRl — сверху вниз, справа налево (традиционный вертикальный текст CJK) |
|---|
Возвращаемое значение
Возвращает 1 в случае успеха, 0 — если документ не открыт или на стеке тегов нет открытого тега
Примечания
Вызывайте эту функцию после BeginTag или BeginTagEx и до EndTag. Атрибут /WritingMode определён в ISO 32000-1 §14.8.5.4.2 (Layout attribute owner, таблица 340).
Когда документ придерживается единого направления письма, задавать /WritingMode на каждом элементе не нужно — при отсутствии атрибута действует значение по умолчанию LrTb. Задавайте атрибут явно на блочных элементах, чьё направление письма отличается от окружения, например у еврейской цитаты внутри английского абзаца.
PDF/UA-1 (ISO 14289-1 §7.2) требует, чтобы естественный язык каждого фрагмента текста определялся однозначно. /WritingMode дополняет атрибут /Lang (SetStructElemLang): /Lang объявляет, на каком языке говорится, а /WritingMode — физическое направление письма, которое ассистивная технология должна использовать при представлении.
Пример
// 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;См. также
SetStructElemBBox, SetStructElemLang, AddTagAttribute, BeginTag, EndTag