aspose.info
PL

CFF2 - Compact Font File Format wersja 2

Zaktualizowano

Czym jest plik CFF2?

Format pliku CFF2 to wersja 2.0 formatu pliku CFF i umożliwia wydajne przechowywanie konturów glifów i metadanych podobnych do formatu pliku CFF. CFF2 różni się od CFF tym, że ma być używany w kontekście czcionki OpenType jako tabela „sfnt” ze znacznikiem CFF2. Nie może być używany jako samodzielny program i jest zależny od danych w innych tabelach OpenType.

Format pliku CFF2

Specyfikacja formatu pliku CFF2 zawiera szczegółowe informacje na temat wewnętrznego układu danych, typów danych, tabel i innych wewnętrznych informacji o formacie pliku. Można go skierować w celach informacyjnych dla programistów. Niektóre szczegóły na ich temat są następujące.

Układ danych

Dane binarne w formacie pliku CFF2 są logicznie zorganizowane jako kilka oddzielnych struktur danych. Układ w danych binarnych jest pokazany w poniższej tabeli.

WpisKomentarze
NagłówekStała lokalizacja
Górny DICTStała lokalizacja
Globalny indeks SubrStała lokalizacja
OdmianaPrzechowuj
FDSelectWyświetlaj tylko wtedy, gdy w INDEXIE DICT czcionek jest więcej niż jeden DICT.
Czcionka DICT INDEX
Tablica czcionek DICTZawarte w czcionce DICT INDEX.
Prywatny DICTJeden na czcionkę DICT.

Tylko pierwsze trzy struktury są oparte na stałych lokalizacjach. Pozostałe są osiągane przez przesunięcia, a ich kolejność można zmienić.

Typy danych

Format pliku CFF2 wykorzystuje następujące typy danych.

NazwaZakresOpis
uint80 do 2558-bitowa liczba bez znaku
uint160 do 6553516-bitowa liczba bez znaku
uint320 do 429496729532-bitowa liczba bez znaku
PrzesunięcieróżnePrzesunięcie o 1, 2, 3 lub 4 bajty (określone przez pole OffSize w tabeli indeksu)
Poza rozmiarem1 do 41-bajtowa liczba bez znaku określa rozmiar pola lub pól przesunięcia

Przechowuje wszystkie wielobajtowe dane liczbowe i pola przesunięcia w kolejności bajtów big-endian. Format CFF2 jest wolny od bajtów dopełniających, ponieważ nie uwzględnia żadnych ograniczeń wyrównania.

Dane DICT

Pliki CFF2 zawierają dane słownika czcionek jako pary klucz-wartość w kompaktowym formacie tokenizowanym. Klucze słownika są kodowane jako operatory 1- lub 2-bajtowe, a wartości słownikowe są kodowane jako operandy numeryczne o zmiennej wielkości. Istnieją trzy struktury korzystające z formatu danych DICT: Top DICT, Font DICT i Private DICT. Szereg typów operandów całkowitych o różnych rozmiarach jest zdefiniowanych i zakodowanych, jak pokazano w poniższej tabeli (pierwszy bajt operandu to b0, drugi to b1 itd.).

Rozmiarzakres b0Zakres wartościObliczanie wartości
132 do 246-107 do +107b0 - 139
2247 do 250+108 do +1131(b0 - 247) * 256 + b1 + 108
2251 do 254-1131 do -108-(b0 - 251) * 256 - b1 - 108
328-32768 do +32767b1 « 8
529-(2^31) do +(2^31 - 1)b1 « 24 | b2 « 16 | b3 « 8 | b4

Nagłówek

Dane binarne rozpoczynają się nagłówkiem o formacie pokazanym w poniższej tabeli.

TypNazwaOpis
uint8wersja głównaSformatuj wersję główną. Ustaw na 2.
uint8wersja drugorzędnaSformatuj wersję pomocniczą. Ustaw na zero.
uint8rozmiar nagłówkaRozmiar nagłówka (bajty).
uint16górnaDługośćDictDługość struktury Top DICT w bajtach.

Bibliografia

Zobacz też