SetStructElemWritingMode
Tagged PDF, Přístupnost
Popis
Nastaví atribut /WritingMode (vlastník atributů Layout) na právě otevřeném prvku na zásobníku tagů. Režim zápisu deklaruje hlavní směr psaní textu uvnitř prvku a ovlivňuje, jak asistivní technologie interpretují pořadí čtení. Odpovídá volání AddTagAttribute s Owner=Layout, Name=WritingMode a názvem režimu jako hodnotou
Syntaxe
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);
Parametry
| WritingMode | The writing direction for the element. Must be one of the following values (case-sensitive): LrTb — left to right, top to bottom (default; Latin, Cyrillic, Greek, and most scripts) RlTb — right to left, top to bottom (Arabic, Hebrew) TbRl — top to bottom, right to left (traditional CJK vertical text) |
|---|
Návratová hodnota
Při úspěchu vrací 1. Vrací 0, pokud není otevřený žádný dokument nebo žádný tag v zásobníku tagů
Poznámky
Call this function after BeginTag or BeginTagEx and before EndTag. The /WritingMode attribute is defined in ISO 32000-1 §14.8.5.4.2 (Layout attribute owner, Table 340).
Pokud dokument používá v celém rozsahu stejný směr psaní, není nutné nastavovat /WritingMode u každého prvku — pokud atribut chybí, použije se výchozí LrTb. Atribut nastavte explicitně u blokových prvků, jejichž směr psaní se liší od okolního obsahu, například u hebrejského citátu vloženého do anglického odstavce
PDF/UA-1 (ISO 14289-1 §7.2) requires that the natural language of every piece of text can be unambiguously determined. /WritingMode complements the /Lang attribute (SetStructElemLang): /Lang declares what language is spoken, while /WritingMode declares the physical writing direction assistive technology should use for presentation.
Příklad
// 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;Viz také
SetStructElemBBox, SetStructElemLang, AddTagAttribute, BeginTag, EndTag