aspose.info
ID

OTF - Format File Font TrueType

Diperbarui

Apa itu file OTF?

File dengan ekstensi .otf mengacu pada format font OpenType. Format font OTF lebih terukur dan memperluas fitur format TTF yang ada untuk tipografi digital. Dikembangkan oleh Microsoft dan Adobe, OTF menggabungkan fitur format font PostScript dan TrueType. Hal ini membuat format OTF mengakomodasi sebagian besar sistem penulisan dan oleh karena itu digunakan secara seragam pada platform komputer utama. Format font OpenType didukung oleh Mac OS X dan Windows 2000 dan yang lebih baru.

Sejarah Singkat

Persyaratan font OpenType berasal dari persyaratan untuk format font yang lebih ekspresif yang dapat menangani tipografi yang halus. Selain itu, ini ditujukan untuk memenuhi persyaratan perilaku kompleks dari banyak sistem penulisan dunia. Microsoft berusaha melisensikan teknologi tipografi canggih Apple, yang dikenal sebagai Tipografi GX, pada awal 1990-an. Ini tidak berjalan dengan baik dan sebagai hasilnya, Microsoft mulai meningkatkan teknologi font TrueType miliknya pada tahun 1994. Modifikasi juga termasuk untuk memperkenalkan format font yang lebih cocok yang juga memenuhi fitur format font Adobe Type 1 (PostScript).

Adobe, pada tahun 1996, bergabung dengan Microsoft dalam upayanya untuk menggantikan format font TrueType Apple dan Type 1 miliknya sendiri. Ini menghasilkan kombinasi dari kedua format font dasar untuk mengatasi keterbatasan dan menambahkan ekstensi baru. Teknologi baru ini diperkenalkan pada tahun yang sama dengan nama OpenType.

Spesifikasi Format File OTF

Spesifikasi OTF tersedia untuk umum oleh Microsoft dan dapat dirujuk dari perspektif pengembang. Seperti TTF, ini menggunakan struktur kontainer ‘sfnt’ yang sama dan kompatibel dengan spesifikasi TrueType. Data di dalam file font OpenType digunakan untuk tujuan yang berbeda seperti menghitung tata letak teks, mendefinisikan glyph sebagai garis TrueType atau Compact Font Format (CFF), memberikan bitmap monokromatik atau berwarna atau dokumen SVG sebagai deskripsi glyph alternatif, dan informasi meta-data.

Tipe Data OTF

File OTF menggunakan tipe data berikut yang semuanya ada di Big Endian.

Tipe DataDeskripsi
uint88-bit unsigned integer.
int8Bilangan bulat bertanda 8-bit.
uint16Bilangan bulat tak bertanda 16-bit.
int16Bilangan bulat bertanda 16-bit.
uint2424-bit unsigned integer.
uint32Bilangan bulat tak bertanda 32-bit.
int32Bilangan bulat bertanda 32-bit.
Tetapnomor fixed-point bertanda 32-bit (16.16)
FWORDint16 yang mendeskripsikan kuantitas dalam unit desain font.
UFWORDuint16 yang mendeskripsikan kuantitas dalam unit desain font.
F2DOT14Angka tetap bertanda 16-bit dengan pecahan 14 bit rendah (2,14).
LONGDATETIMETanggal dan waktu direpresentasikan dalam hitungan detik sejak 12:00 tengah malam, 1 Januari 1904, UTC. Nilai direpresentasikan sebagai bilangan bulat 64-bit bertanda.
TagLarik empat uint8 (panjang = 32 bit) digunakan untuk mengidentifikasi tabel, sumbu variasi desain, skrip, sistem bahasa, fitur, atau garis dasar
Offset16Offset pendek ke tabel, sama seperti uint16, offset NULL = 0x0000
Offset32Offset panjang ke tabel, sama seperti uint32, offset NULL = 0x00000000
Versi16Dot16Dikemas nilai 32-bit dengan nomor versi mayor dan minor. (Lihat Nomor Versi Tabel.)

Direktori Tabel OTF

File OTF dimulai dengan direktori tabel. Direktori ini adalah kumpulan tabel tingkat atas dalam file font. Bergantung pada jumlah font dalam file, direktori tabel mungkin terletak di lokasi berbeda dalam file. Misalnya, jika file font hanya memiliki satu font, direktori tabel dimulai pada byte 0 dari file tersebut. Dalam hal beberapa koleksi OpenType Fonts, awal direktori tabel ditunjukkan di TTCHeader.

JenisNamaDeskripsi
uint32sfntVersion0x00010000 atau 0x4F54544F (‘OTTO’)
uint16numTablesJumlah tabel.
uint16searchRangeDaya maksimum 2 kurang dari atau sama dengan numTables, dikalikan 16 ((2**floor(log2(numTables))) * 16, di mana “**” adalah operator eksponensial).
uint16entrySelector Log2 dengan daya maksimum 2 kurang dari atau sama dengan numTables (log2(searchRange/16), yang sama dengan floor(log2(numTables))).
uint16rangeShiftnumTables kali 16, minus searchRange ((numTables * 16) - searchRange).
tableRecordtableRecords[numTables]Larik catatan tabel—satu untuk setiap tabel tingkat atas dalam font

Catatan Tabel

Untuk setiap tabel tingkat teratas dalam font, terdapat Catatan Tabel yang terdiri dari bidang-bidang berikut.

TipeNamaDeskripsi
TagtableTagPengidentifikasi tabel.
uint32checksumChecksum untuk tabel ini.
Offset32mengimbangiOffset dari awal file font.
uint32panjang Panjang tabel ini.

Setiap tabel dalam file font OpenType diwakili oleh nama yang dikenal sebagai tag tabel. Semua catatan dalam larik harus diurutkan dalam urutan menaik berdasarkan tag.

Referensi

Lihat juga