|
Підтримка формування сирійської, монгольської та деванагарі писемності Інтерфейси можливостей роботи з кількома писемностями (v2.119.53 - v2.119.55)
|
Арабське формування Автоматичний конвеєр формування Рушій GSUB |
|
HotPDF надає інтерфейси можливостей класів з'єднання / позиційного аналізу / індійських складів для трьох складних систем писемності, крім арабської: сирійської (U+0700-U+074F), монгольської (U+1800-U+18AF) та деванагарі (U+0900-U+097F) Кожна можливість дозволяє викликаючим програмам керувати писемністю через існуючий рушій OpenType GSUB для правильного формування, залишаючи при цьому складні завдання (визначення меж кластерів, розв'язання BiDi, позиціонування GPOS) поза межами HotPDF
Можливість формування сирійської писемності (v2.119.53) Два нові методи надають доступ до поведінки з'єднання сирійської писемності:
function GetSyriacJoiningClass(CP: Cardinal): TJoiningClass; function GetSyriacPosition(const Run: array of Cardinal; Index: Integer): TPosition;
Сирійське письмо наслідує той самий фреймворк чотирьох класів з'єднання справа / подвійного з'єднання / прозорого / без з'єднання, що й арабське;
На відміну від арабської, сирійський блок не має презентаційних форм, попередньо закодованих в Unicode - немає сирійського еквівалента арабських блоків презентаційних форм U+FB50-FDFF / U+FE70-FEFC. Тому користувачі повинні керувати сирійським формуванням через визначені шрифтом пошуки GSUB (зазвичай
Можливість формування монгольської писемності (v2.119.54) Два паралельні методи для монгольської мови:
function GetMongolianJoiningClass(CP: Cardinal): TJoiningClass; function GetMongolianPosition(const Run: array of Cardinal; Index: Integer): TPosition;
Покриття включає базову монгольську (U+1820-U+1842), тодо (U+1843-U+1877), сібе (U+1880-U+18A8), маньчжурську та розширення алі-галі. Селектори варіантів FVS1 / FVS2 / FVS3 (U+180B-U+180D), м'який дефіс NIRUGU (U+180A) та знаки голосних алі-галі класифікуються як прозорі (клас T), тому они беруть участь у з'єднанні, не перериваючи обхід
Як і сирійське письмо, монгольське не має презентаційних форм, попередньо закодованих в Unicode. Очікується, що традиційне vertical розташування монгольського письма, складні правила варіації форми літер та вибір форми на основі FVS керуватимуться визначеними шрифтом пошуками GSUB (зазвичай
Можливість індійського формування деванагарі (v2.119.55) Деванагарі фундаментально відрізняється від арабського / сирійського / монгольського письма - це індійський абугіда-скрипт, де смисловою одиницею є складний кластер (акшара), а не окрема літера, і порядок візуалізації гліфів усередині кластера часто відрізняється від логічного порядку Unicode. Два методи надають доступ до індійського рівня можливостей деванагарі:
function GetDevanagariCategory(CP: Cardinal): TIndicCategory; procedure ApplyDevanagariReorder(var Run: array of Cardinal);
Метод
Метод
Автоматична інтеграція (v2.119.67): коли
Типовий процес роботи (сирійське письмо)
PDF.RegisterUnicodeTTF('Estrangelo', 'SyrCOMEdessa.otf'); PDF.SetGSUBScript('syrc'); // див. док. рушія GSUB for i := 0 to Length(Run) - 1 do begin Pos := PDF.GetSyriacPosition(Run, i); // init / medi / fina / isol // запит до GSUB для вибору відповідного за позицією гліфа заміни // виведення + MarkUnicodeGlyphUsed end;
Типовий процес роботи (деванагарі з автоматичним перевпорядкуванням)
PDF.RegisterUnicodeTTF('NotoDeva', 'NotoSansDevanagari-Regular.ttf'); PDF.ShapingFeatures := [sfIndicShaping]; // автоматичне перевпорядкування Repha + I-matra PDF.CurrentPage.SetFont('NotoDeva', [], 14); PDF.CurrentPage.UnicodeTextOut(50, 700, 0, UnicodeString(#$0939#$093F#$0928#$094D#$0926#$0940)); // "Hindi"
Допоміжні методи для підмножин Unicode та вилучення Метод
Область застосування та обмеження Поточна інтеграція на стороні генератора Формування для сирійської, монгольської, тибетської та індійських писемностей тепер має окремі довідкові сторінки API. Сирійське формування можна ввімкнути за допомогою Поточна область також охоплює N'Ko та Adlam як RTL cursive скрипти, упорядкування тайського/лаоського SARA AM та знаків тону, упорядкування ніккуду івриту та яванські пре-базові знаки. Ці шляхи задокументовані в розділі Методи попередньої обробки формування скриптів
Див. також: Підтримка формування арабської, перської та урду писемності, Автоматичний конвеєр формування (Фаза 8), Рушій заміни OpenType GSUB, THotPDF.AssignSyntheticCodepointForGID |