aspose.info
ID

CFF2 - Format File Font Ringkas versi 2

Diperbarui

Apa itu file CFF2?

Format file CFF2 adalah versi 2.0 dari format file CFF dan memungkinkan penyimpanan kerangka mesin terbang yang efisien dan metadata yang serupa dengan format file CFF. CFF2 berbeda dari CFF karena dimaksudkan untuk digunakan dalam konteks font OpenType sebagai tabel ‘sfnt’ dengan tag CFF2. Itu tidak dapat digunakan sebagai program yang berdiri sendiri dan bergantung pada data di tabel OpenType lainnya.

Format File CFF2

Spesifikasi format file CFF2 berisi detail tentang tata letak data internal, tipe data, tabel, dan informasi internal lainnya tentang format file. Itu dapat dirujuk untuk referensi pengembang. Beberapa rincian tentang ini adalah sebagai berikut.

Tata Letak Data

Data biner format file CFF2 diatur secara logis sebagai sejumlah struktur data terpisah. Tata letak dalam data biner adalah seperti yang ditunjukkan pada tabel berikut.

MasukKomentar
TajukLokasi tetap
DIK TeratasLokasi tetap
Global Subr INDEKSLokasi tetap
VariasiToko
FDSelectTampilkan hanya jika ada lebih dari satu Font DICT dalam Font DICT INDEX.
Font DICT INDEX
Array Font DICTTermasuk dalam Font DICT INDEX.
DIK PribadiSatu per Font DICT.

Hanya tiga struktur pertama yang didasarkan pada lokasi tetap. Sisa dicapai melalui offset, dan urutannya dapat diubah.

Tipe Data

Format file CFF2 menggunakan tipe data berikut.

NamaJangkauanDeskripsi
uint80 hingga 2558-bit nomor tak bertanda
uint160 hingga 6553516-bit unsigned number
uint320 hingga 429496729532-bit unsigned number
Offsetbervariasi1, 2, 3, atau 4 byte offset (ditentukan oleh bidang OffSize dalam tabel Indeks)
OffSize1 hingga 4Nomor unsigned 1-byte menentukan ukuran bidang Offset atau bidang

Ini menyimpan semua data numerik multi-byte dan bidang offset dalam urutan byte big-endian. Format CFF2 bebas dari padding byte karena tidak menghormati batasan penyelarasan apa pun.

Data DICT

File CFF2 berisi data kamus font sebagai pasangan nilai kunci dalam format token yang ringkas. Kunci kamus dikodekan sebagai operator 1 atau 2 byte dan nilai kamus dikodekan sebagai operan numerik ukuran variabel. Ada tiga struktur yang menggunakan format Data DICT: Top DICT, Font DICT dan Private DICT. Sejumlah tipe operan bilangan bulat dengan berbagai ukuran ditentukan dan dikodekan seperti yang ditunjukkan pada tabel berikut (byte pertama operan adalah b0, byte kedua adalah b1, dan seterusnya).

Ukuranb0 rentangRentang nilaiPerhitungan nilai
132 hingga 246-107 hingga +107b0 - 139
2247 hingga 250+108 hingga +1131(b0 - 247) * 256 + b1 + 108
2251 hingga 254-1131 hingga -108-(b0 - 251) * 256 - b1 - 108
328-32768 hingga +32767b1 « 8
529-(2^31) hingga +(2^31 - 1)b1 « 24 | b2 « 16 | b3 « 8 | b4

Tajuk

Data biner dimulai dengan header yang memiliki format yang ditunjukkan pada Tabel di bawah ini.

JenisNamaDeskripsi
uint8versi utamaFormat versi mayor. Setel ke 2.
uint8versi minorFormat versi minor. Setel ke nol.
uint8ukuran tajukUkuran tajuk (byte).
uint16topDictLengthPanjang struktur Top DICT dalam byte.

Referensi

Lihat juga