aspose.info
PL

TTF - format pliku czcionek TrueType

Zaktualizowano

Czym jest plik TTF?

Plik z rozszerzeniem .ttf reprezentuje pliki czcionek oparte na technologii czcionek specyfikacji TrueType. Został pierwotnie zaprojektowany i uruchomiony przez firmę Apple Computer, Inc dla systemu Mac OS, a później został przyjęty przez firmę Microsoft dla systemu operacyjnego Windows. Czcionki TrueType zapewniają najwyższą jakość wyświetlania na ekranach komputerów i drukarek bez uzależnienia od rozdzielczości. Wszystkie nowoczesne aplikacje korzystające z czcionek mogą pracować z plikami TTF. Pliki czcionek TTF są swobodnie dostępne w Internecie i można je również konwertować na inne formaty plików czcionek, takie jak OTF i WOFF.

Krótka historia

Zaprojektowany przez firmę Apply Computer, Inc. w latach 80. dla systemu MacOS, format czcionki TTF miał na celu rozwiązanie niektórych ograniczeń technicznych formatu Type 1 firmy Adobe. Firma Apple włączyła obsługę czcionek TrueType do komputerów Mac w 1991 roku. Celem projektowania czcionek TTF była wydajność przechowywania i przetwarzania oraz rozszerzalność. W oparciu o tę rozszerzalność istniejące czcionki można konwertować do formatu TrueType.

Firma Microsoft po raz pierwszy użyła czcionek TrueType w systemie Windows 3.1 w kwietniu 1992 r., po tym, jak firma Apple zgodziła się udzielić firmie Microsoft licencji TrueType. Poprawiło to mechanizm rasteryzacji oraz poprawiło jego wydajność i wydajność.

Specyfikacje formatu plików True Type

Plik czcionek TrueType to plik binarny składający się z sekwencji połączonych tabel. Każda tabela jest sekwencją słów i ma nazwę znaną jako Tag. Każdy znacznik jest typu danych uint32 i składa się z czterech znaków. Pierwsza tabela w pliku to katalog czcionek, który daje dostęp do innych tabel w pliku czcionek. Dane dotyczące czcionek są zawarte w innych tabelach następujących po tabeli katalogu czcionek. Ponieważ każda tabela jest dostępna za pomocą jej znacznika, tabele mogą pojawiać się w pliku w dowolnej kolejności.

Wymagane tabele i ich nazwy znaczników przedstawiono w poniższej tabeli.

TagTabela
‘mapa’mapowanie znaków na glify
‘glif’dane glifów
‘głowa’nagłówek czcionki
‘hej’nagłówek poziomy
‘hmtx’metryki poziome
‘miejsce’indeks do lokalizacji
‘maks’maksymalny profil
‘imię’nazewnictwo
‘post’PostScript

Typy danych

Czcionki TrueType używają standardowych liczb całkowitych i dodatkowych typów danych wymienionych w poniższej tabeli.

Typ danychOpis
krótkiFrak16-bitowy ułamek ze znakiem
Naprawiono16,16-bitowa liczba stałoprzecinkowa ze znakiem
Słowo16-bitowa liczba całkowita ze znakiem, która opisuje wielkość w jednostkach F, najmniejszą mierzalną odległość w przestrzeni em.
uFWord16-bitowa liczba całkowita bez znaku, która opisuje wielkość w jednostkach FUNits, czyli najmniejszą mierzalną odległość w przestrzeni em.
F2Kropka1416-bitowa stała liczba ze znakiem, przy czym 14 niższych bitów reprezentuje ułamek.
długaDataCzasDługi wewnętrzny format daty w sekundach od północy 12:00 1 stycznia 1904. Jest reprezentowany jako 64-bitowa liczba całkowita ze znakiem.

Katalog czcionek

Pierwsza tabela w czcionce TrueType to katalog czcionek, który zapewnia dostęp do informacji wymaganych do uzyskania dostępu do danych w innych tabelach. Ponadto składa się z:

  • Podtabela przesunięcia - przechowuje zapis tabel w czcionce i dostarcza informacji o przesunięciu, aby uzyskać dostęp do każdej tabeli w katalogu
  • Table Directory - Zawiera wpisy dla każdej tabeli w czcionce

Przesunięcie tabeli podrzędnej

Podtabela przesunięć jest pokazana poniżej.

TypNazwaOpis
uint32typ skaleraZnacznik wskazujący skaler OFA, który ma być użyty do rasteryzacji tej czcionki; więcej informacji znajdziesz w uwagach na temat typu skalera.
uint16liczbaTabeleliczba stołów
uint16szukajZakres(maksymalna potęga 2 <= numTabel)*16
uint16Selektor wpisulog2(maksymalna potęga 2 <= numTabel)
uint16Przesunięcie zakresunumTables*16-searchRange

Katalog tabel

Katalog tabeli znajduje się zaraz po podtabeli przesunięcia. Jego struktura jest przedstawiona w poniższej tabeli.

TypNazwaOpis
uint32tag4-bajtowy identyfikator
uint32suma kontrolnasuma kontrolna dla tej tabeli
uint32offsetprzesunięcie od początku sfnt
uint32długośćdługość tej tablicy w bajtach (rzeczywista długość bez wypełnienia)

Każda tabela w pliku czcionek musi mieć własny wpis w katalogu tabeli. Wpisy w tabeli muszą być posortowane rosnąco według tagów.

Bibliografia

Zobacz też