Dapatkan Unicode Ranges yang Didukung dari file Font * .ttf di Ubuntu


9

Saya memiliki beberapa font dalam format 'ttf' di mesin Ubuntu saya.

Saya ingin mengetahui beberapa metadata font-font itu, tentang unicode mana yang berkisar dan kode-kode non-unicode mana file font yang didukung.

Bagaimana saya bisa melakukannya?

Ditambahkan 1: Lupa untuk menyebutkan, bahwa saya ingin mendapatkan informasi itu untuk beberapa ratusan font, jadi saya perlu semacam utilitas terminal, yang dapat diotomatisasi

Jawaban:


8

fc-querydapat menampilkan set karakter unicode yang didukung. Saya tidak tahu kode halaman lain.

Misalnya, fc-query /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttfpada Debian saya menunjukkan ini:

…
charset: 
    0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffffffff ffffffff ffffffff
    0001: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    0002: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff 008873ff
…

Ini menunjukkan rentang karakter yang didukung, meskipun bukan yang blok miliknya (Anda harus tahu rentang mana milik blok mana).

Misalnya, kolom keempat 0000, yang sesuai dengan U + 0060 - U + 007F, memiliki nilai hex sebesar 7fffffff. Ini memiliki nilai bit 0111 1111 1111 1111 1111 1111 1111 1111, di mana bit paling kanan adalah U + 0060, dan yang paling kiri adalah U + 007F. Ini berarti bahwa U + 007F tidak didukung dalam font ini.

Anda mungkin perlu menulis skrip yang membuat operasi bitwise pada informasi yang disediakan oleh fc-query.

P / S: Situs masuk favorit saya untuk informasi unicode adalah FileFormat.Info


Di mana saya menemukan informasi tentang rentang mana yang termasuk blok mana?
— akaihola

Ah, nomor baris memberikan digit hex paling kiri dari titik kode, dan posisi bit di bidang bit memberikan dua digit hex paling kanan. Baik?
— akaihola

1

Saya akan merekomendasikan FontForge . Ini tersedia di manajer paket Ubuntu hanya sebagai fontforge.


Yap, Saya menemukan program ini - tetapi seperti yang saya mengerti hanya memiliki antarmuka GUI, tapi saya perlu terminal, untuk mengotomatisasi hal ini
— ShockwaveNN

@ShockwaveNN: baiklah, katakan demikian dalam pertanyaan Anda. Peluang Anda untuk mendapatkan jawaban yang cocok untuk pertanyaan Anda meningkat jika Anda menyatakan pertanyaan Anda yang sebenarnya.
— Daniel Andersson

1

Catatan untuk siapa saja yang menemukan ini ..

fc-query tidak 100% andal pada output charset.

Misalnya Yogafont di dafont.com ini menunjukkan set karakter kosong, meskipun itu pasti memiliki karakter di dalamnya.

$ fc-query yogafont.TTF
Pattern has 20 elts (size 32)
    family: "Yogafont"(s)
    familylang: "en"(s)
    style: "Regular"(s)
    stylelang: "en"(s)
    fullname: "Yogafont"(s)
    fullnamelang: "en"(s)
    slant: 0(i)(s)
    weight: 80(i)(s)
    width: 100(i)(s)
    spacing: 100(i)(s)
    foundry: "unknown"(s)
    file: "yogafont.TTF"(s)
    index: 0(i)(s)
    outline: FcTrue(s)
    scalable: FcTrue(s)
    charset: 
(s)
    lang: (s)
    fontversion: 0(i)(s)
    fontformat: "TrueType"(s)
    decorative: FcFalse(s)

Font lain dengan gambar di dalamnya seperti WW1 menunjukkan rangkaian karakter terbatas.

$ fc-query WW1-A___.TTF 
Pattern has 19 elts (size 32)
    family: "WW1  A"(s)
    familylang: "en"(s)
    style: "Regular"(s)
    stylelang: "en"(s)
    fullname: "WW1  A"(s)
    fullnamelang: "en"(s)
    slant: 0(i)(s)
    weight: 80(i)(s)
    width: 100(i)(s)
    foundry: "unknown"(s)
    file: "WW1-A___.TTF"(s)
    index: 0(i)(s)
    outline: FcTrue(s)
    scalable: FcTrue(s)
    charset: 
    0000: 00000000 00000001 00000000 0001fffe 00000000 00000000 00000000 00000000
(s)
    lang: (s)
    fontversion: 65536(i)(s)
    fontformat: "TrueType"(s)
    decorative: FcFalse(s)
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.