aspose.info
HU

OTF - TrueType Font File Format

Frissítve

Mi az az OTF fájl?

Az .otf kiterjesztésű fájl OpenType betűtípus formátumra utal. Az OTF betűtípus skálázhatóbb, és kiterjeszti a TTF formátumok meglévő szolgáltatásait a digitális tipográfia számára. A Microsoft és az Adobe által kifejlesztett OTF egyesíti a PostScript és a TrueType betűtípusok jellemzőit. Ez teszi az OTF formátumot a többségi írási rendszerek befogadására, és ezért egységesen használják a főbb számítógépes platformokon. Az OpenType betűtípus formátumot a Mac OS X és a Windows 2000 és újabb verziók támogatják.

Rövid története

Az OpenType betűtípusok követelménye egy kifejezőbb betűformátum követelményeként keletkezett, amely képes kezelni a finom tipográfiát. Ezenkívül az volt a cél, hogy megfeleljen a világ számos írásrendszerének összetett viselkedési követelményeinek. A Microsoft az 1990-es évek elején megkísérelte licencelni az Apple fejlett tipográfiai technológiáját, amely GX Typography néven ismert. Ez nem ment jól, ennek eredményeként a Microsoft 1994-ben megkezdte saját TrueType betűtípus-technológiájának továbbfejlesztését. A módosítások között szerepelt egy megfelelőbb betűformátum bevezetése is, amely megfelel az Adobe Type 1 (PostScript) betűformátumainak jellemzőinek is.

Az Adobe 1996-ban csatlakozott a Microsofthoz az Apple TrueType és a saját Type 1 betűtípusok felülírására irányuló erőfeszítéseihez. Ennek eredményeként a két mögöttes betűformátum kombinációját sikerült leküzdeni a korlátokon és új kiterjesztéseket adni. Ezt az új technológiát ugyanabban az évben mutatták be OpenType néven.

Az OTF fájlformátum specifikációi

Az OTF-specifikációk a Microsoft által nyilvánosan elérhetők, és a fejlesztők szemszögéből is hivatkozhatnak rájuk. A TTF-hez hasonlóan ugyanazt az „sfnt” tárolószerkezetet használja, és kompatibilis a TrueType specifikációival. Az OpenType betűtípusfájlon belüli adatokat különböző célokra használják fel, például a szövegelrendezés kiszámítására, a karakterjelek TrueType vagy Compact Font Format (CFF) körvonalaként történő meghatározására, monokromatikus vagy színes bittérképek vagy SVG-dokumentumok alternatív karakterjel-leírások biztosítására, valamint metaadat-információkra.

OTF adattípusok

Az OTF-fájlok a következő adattípusokat használják, amelyek mindegyike a Big Endianban található.

AdattípusLeírás
uint88 bites előjel nélküli egész.
int88 bites előjeles egész szám.
uint1616 bites előjel nélküli egész.
int1616 bites előjeles egész szám.
uint2424 bites előjel nélküli egész.
uint3232 bites előjel nélküli egész.
int3232 bites előjeles egész szám.
Rögzített32 bites előjeles fixpontos szám (16.16)
FWORDint16, amely egy mennyiséget ír le font tervezési egységekben.
UFWORDuint16, amely egy mennyiséget ír le font tervezési egységekben.
F2DOT1416 bites előjelű fix szám alacsony 14 bites törttel (2.14).
LONGDATETIMEA dátum és az idő másodpercek számában kifejezve 1904. január 1., UTC 12:00 éjfél óta. Az érték előjeles 64 bites egész számként jelenik meg.
CímkeNégy uint8-ból álló tömb (hossz = 32 bit), amely egy táblázat, tervezési variációs tengely, szkript, nyelvi rendszer, szolgáltatás vagy alapvonal azonosítására szolgál
Eltolás16Rövid eltolás egy táblázathoz, ugyanaz, mint az uint16, NULL eltolás = 0x0000
Eltolás32Hosszú eltolás egy táblázathoz, ugyanaz, mint az uint32, NULL eltolás = 0x00000000
Verzió16Dot16Csomagolt 32 bites érték fő- és mellékverziószámokkal. (Lásd a táblázat verziószámait.)

OTF Tables Directory

Az OTF fájl egy táblakönyvtárral kezdődik. Ez a könyvtár a betűtípusfájl tábláinak legfelső szintű gyűjteménye. A fájlban lévő betűtípusok számától függően a táblázat könyvtára a fájl különböző helyein lehet. Például abban az esetben, ha a fontfájlnak csak egy betűtípusa van, a táblakönyvtár a fájl 0. bájtjával kezdődik. Több OpenType Fonts gyűjtemény esetén a táblakönyvtár kezdetét a TTCHader jelzi.

TípusNévLeírás
uint32sfntVersion0x00010000 vagy 0x4F54544F (‘OTTO’)
uint16numTablesTáblázatok száma.
uint16searchRangeA 2 maximális hatványa kisebb vagy egyenlő, mint a numTables, szorozva 16-tal ((2**floor(log2(numTables))) * 16, ahol a „**” egy hatványozási operátor).
uint16entrySelector Log2, amelynek maximális teljesítménye 2 kisebb vagy egyenlő, mint a numTables (log2(searchRange/16), ami egyenlő a floor(log2(numTables))).
uint16rangeShiftnumTables szor 16, mínusz searchRange ((numTables * 16) - searchRange).
tableRecordtableRecords[numTables]Táblázatrekordok tömbje – egy a betűtípus minden legfelső szintű táblájához

Táblázat rekord

A betűtípus minden legfelső szintű táblázatához tartozik egy táblázatrekord, amely a következő mezőkből áll.

TípusNévLeírás
CímketableTagTáblaazonosító.
uint32ellenőrző összegEllenőrző összeg ehhez a táblázathoz.
Eltolás32eltolásEltolás a betűtípusfájl elejétől.
uint32hossz E táblázat hossza.

Az OpenType betűtípusfájlban minden táblát táblázatcímkékként ismert nevek képviselnek. A tömbben lévő összes rekordot kötelező címkénként növekvő sorrendbe rendezni.

Hivatkozások

Lásd még