aspose.info
CS

CFF2 - Kompaktní formát souboru písem verze 2

Aktualizováno

Co je soubor CFF2?

Formát souboru CFF2 je verze 2.0 formátu souboru CFF a umožňuje efektivní ukládání obrysů glyfů a metadat podobných formátu souboru CFF. CFF2 se liší od CFF v tom, že je určen k použití v kontextu s fontem OpenType jako tabulka ‘sfnt’ s tagem CFF2. Nelze jej použít jako samostatný program a závisí na datech v jiných tabulkách OpenType.

Formát souboru CFF2

Specifikace formátu souboru CFF2 obsahuje podrobnosti o vnitřním rozložení dat, datových typech, tabulkách a další interní informace o formátu souboru. Může být odkazováno pro vývojáře. Některé podrobnosti o nich jsou následující.

Rozložení dat

Binární data formátu souboru CFF2 jsou logicky organizována jako množství samostatných datových struktur. Rozložení v binárních datech je znázorněno v následující tabulce.

VstupKomentáře
ZáhlavíPevné umístění
Top DICTPevné umístění
Globální dílčí INDEXPevné umístění
VariantaObchod
FDSelectPřítomný pouze v případě, že je v INDEXU písma DICT více než jedno písmo DICT.
Písmo DICT INDEX
Pole písma DICTZahrnuto v písmu DICT INDEX.
Soukromý DICTJeden na písmo DICT.

Pouze první tři struktury jsou založeny na pevných místech. Zbývající jsou dosaženy pomocí offsetů a jejich pořadí lze změnit.

Typy dat

Formát souboru CFF2 používá následující datové typy.

NázevRozsahPopis
uint80 až 2558bitové číslo bez znaménka
uint160 až 6553516bitové číslo bez znaménka
uint320 až 429496729532bitové číslo bez znaménka
Offsetliší se1, 2, 3 nebo 4 byte offsety (určené polem OffSize v indexové tabulce)
OffSize1 až 41-bajtové číslo bez znaménka určuje velikost pole nebo polí Offset

Ukládá všechna vícebajtová numerická data a offsetová pole v pořadí bajtů big-endian. Formát CFF2 neobsahuje výplňové bajty, protože nerespektuje žádná omezení zarovnání.

Údaje DICT

Soubory CFF2 obsahují data slovníku písem jako páry klíč–hodnota v kompaktním tokenizovaném formátu. Klíče slovníku jsou kódovány jako 1 nebo 2 bajtové operátory a hodnoty slovníku jsou kódovány jako číselné operandy s proměnnou velikostí. Existují tři struktury, které používají formát dat DICT: Top DICT, Font DICT a Private DICT. Je definováno několik typů celočíselných operandů různých velikostí a jsou kódovány tak, jak je uvedeno v následující tabulce (první bajt operandu je b0, druhý je b1 atd.).

Velikostrozsah b0Rozsah hodnotVýpočet hodnoty
132 až 246-107 až +107b0 - 139
2247 až 250+108 až +1131(b0 - 247) * 256 + b1 + 108
2251 až 254-1131 až -108-(b0 - 251) * 256 - b1 - 108
328-32768 až +32767b1 « 8
529-(2^31) až +(2^31 - 1)b1 « 24 | b2 « 16 | b3 « 8 | b4

Záhlaví

Binární data začínají záhlavím ve formátu uvedeném v tabulce níže.

TypNázevPopis
uint8hlavníVerzeFormát hlavní verze. Nastavit na 2.
uint8minorVersionFormát vedlejší verze. Nastavit na nulu.
uint8velikost záhlavíVelikost záhlaví (bajty).
uint16topDictLengthDélka horní struktury DICT v bajtech.

Reference

Viz také