|
Szír / mongol / devanagari formázás támogatása Többírásos képességfelületek (v2.119.53 - v2.119.55)
|
Arab formázás Automatikus formázási pipeline GSUB motor |
|
A HotPDF kapcsolódási osztály (joining-class) / pozícióelemző (positional-analysis) / indiai szótagkategória (Indic syllabic-category) képességfelületeket tesz elérhetővé az arab nyelven kívül három összetett írásrendszerhez: a szír (U+0700-U+074F), a mongol (U+1800-U+18AF) és a devanagari (U+0900-U+097F) nyelvekhez. Mindegyik képesség lehetővé teszi a hívók számára, hogy a meglévő OpenType GSUB motoron keresztül vezéreljék az írásrendszert a helyes formázás érdekében, miközben a nehéz feladatokat (klaszterhatár-felismerés, BiDi feloldás, GPOS pozicionálás) a HotPDF hatókörén kívül tartják
Szír formázási képesség (v2.119.53) Két új metódus mutatja be a szír kapcsolódási viselkedést:
function GetSyriacJoiningClass(CP: Cardinal): TJoiningClass; function GetSyriacPosition(const Run: array of Cardinal; Index: Integer): TPosition;
A szír ugyanazt a jobbra kapcsolódó (Right-Joining) / kettősen kapcsolódó (Dual-Joining) / transzparens (Transparent) / nem kapcsolódó (Non-Joining) négyosztályos keretrendszert követi, mint az arab; a
Az arabtól eltérően a szír blokk nem rendelkezik előre kódolt bemutatási formákkal (Presentation Forms) a Unicode-ban – a szírnek nincs megfelelője az U+FB50-FDFF / U+FE70-FEFC arab bemutatási formák blokkjainak. A fogyasztóknak ezért a betűtípus által meghatározott GSUB kereséseken (jellemzően
Mongol formázási képesség (v2.119.54) Két párhuzamos metódus a mongol nyelvhez:
function GetMongolianJoiningClass(CP: Cardinal): TJoiningClass; function GetMongolianPosition(const Run: array of Cardinal; Index: Integer): TPosition;
A lefedettség magában foglalja az alapvető mongol (U+1820-U+1842), Todo (U+1843-U+1877), Sibe (U+1880-U+18A8), Manchu és Ali Gali kiterjesztéseket. Az FVS1 / FVS2 / FVS3 (U+180B-U+180D) variációs szelektorok, a NIRUGU (U+180A) lágy kötőjel és az Ali Gali magánhangzó-jelek mind transzparens (T-osztályú) besorolást kaptak, így részt vesznek a kapcsolódásban anélkül, hogy megszakítanák a futást
A szírhez hasonlóan a mongolnak sincsenek előre kódolt bemutatási formái a Unicode-ban. A mongol hagyományos függőleges elrendezése, az összetett betűalak-változási szabályok és az FVS-vezérelt alakválasztás mind a betűtípus by determined GSUB keresések (jellemzően
Devanagari indiai formázási képesség (v2.119.55) A devanagari alapvetően különbözik az arab / szír / mongol nyelvektől – ez egy indiai abugida írásrendszer, ahol az értelmes egység egy szótagklaszter (akshara), nem pedig egyetlen betű, és a glifák renderelt sorrendje a klaszteren belül gyakran eltér a logikai Unicode sorrendtől. Két metódus teszi elérhetővé a devanagari indiai képességi réteget:
function GetDevanagariCategory(CP: Cardinal): TIndicCategory; procedure ApplyDevanagariReorder(var Run: array of Cardinal);
A
Az
Automatikus integráció (v2.119.67): ha a
Tipikus munkafolyamat (szír)
PDF.RegisterUnicodeTTF('Estrangelo', 'SyrCOMEdessa.otf'); PDF.SetGSUBScript('syrc'); // see GSUB engine doc for i := 0 to Length(Run) - 1 do begin Pos := PDF.GetSyriacPosition(Run, i); // init / medi / fina / isol // a pozíciónak megfelelő helyettesítő glifa lekérdezése a GSUB-ból // emit + MarkUnicodeGlyphUsed end;
Tipikus munkafolyamat (devanagari automatikus újrarendezéssel)
PDF.RegisterUnicodeTTF('NotoDeva', 'NotoSansDevanagari-Regular.ttf'); PDF.ShapingFeatures := [sfIndicShaping]; // auto Repha + I-matra reorder PDF.CurrentPage.SetFont('NotoDeva', [], 14); PDF.CurrentPage.UnicodeTextOut(50, 700, 0, UnicodeString(#$0939#$093F#$0928#$094D#$0926#$0940)); // "Hindi"
Unicode részhalmaz és kinyerési segédek A
Hatókör és korlátozások Jelenlegi előállító-oldali integráció A szír, mongol, tibeti és indiai formázás már külön API reference oldalakat kapott. A szír az AutoShapeSyriac, a mongol az sfMongolianShaping, a tibeti az sfTibetanShaping, az indiai újrarendezés az sfIndicShaping, a teljes indiai GSUB formázás pedig az sfIndicGSUB segítségével engedélyezhető. A részletes belépési pontok a tibeti, mongol és szír formázási módszerek, valamint az indiai formázási módszerek oldalain vannak dokumentálva A jelenlegi hatókör kiterjed a N'Ko és Adlam nyelvekre is mint RTL kurzív írásrendszerekre, a thai/laoszi SARA AM és tónusjel-rendezésre, a héber niqqud rendezésre, valamint a jávai alap-előtti jelekre. Ezek a folyamatok az írásrendszer formázási előfeldolgozási módszerek oldalon vannak dokumentálva
Lásd még: Arabic / Persian / Urdu Shaping Support, Automatic Shaping Pipeline (Phase 8), OpenType GSUB Substitution Engine, THotPDF.AssignSyntheticCodepointForGID |