Nhận Phạm vi Unicode được hỗ trợ từ tệp Phông chữ * .ttf trên Ubuntu


9

Tôi có một số phông chữ ở định dạng 'ttf' trên máy Ubuntu của mình.

Tôi muốn biết một số siêu dữ liệu của các phông chữ đó, về phạm vi unicode nào và mã hóa không unicode nào các tệp phông chữ đó được hỗ trợ.

Tôi phải làm việc đó như thế nào?

Đã thêm 1: Quên đề cập rằng tôi muốn nhận thông tin đó cho hàng trăm phông chữ, vì vậy tôi cần một số tiện ích đầu cuối, có thể được tự động hóa

Câu trả lời:


8

fc-query có thể hiển thị các bộ ký tự unicode được hỗ trợ. Tôi không biết về các loại tiền mã hóa khác.

Ví dụ, fc-query /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf trên Debian của tôi hiển thị điều này:

…
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
…

Nó hiển thị các phạm vi ký tự được hỗ trợ, mặc dù nó không thuộc về khối nào (bạn phải biết phạm vi đó thuộc về khối nào).

Ví dụ: cột thứ tư 0000, tương ứng với U + 0060 - U + 007F, có giá trị hex là 7fffffff. Cái này có một chút giá trị 0111 1111 1111 1111 1111 1111 1111 1111, trong đó bit bên phải nhất là U + 0060 và bên trái nhiều nhất là U + 007F. Điều này có nghĩa là U + 007F không được hỗ trợ trong phông chữ này.

Có lẽ bạn cần phải viết một tập lệnh thực hiện các thao tác bitwise trên thông tin được cung cấp bởi fc-query.

P / S: Trang web truy cập ưa thích của tôi để biết thông tin unicode là FileFormat.Info


Tôi tìm thông tin về phạm vi nào thuộc về khối nào?
akaihola

Ah, số dòng cho các chữ số hex ngoài cùng bên trái của điểm mã và vị trí của bit trong trường bit cho hai chữ số hex ngoài cùng bên phải. Đúng?
akaihola

1

Tôi khuyên bạn nên Phông chữ . Nó có sẵn trong trình quản lý gói của Ubuntu đơn giản như fontforge.


Đúng, tôi đã tìm thấy chương trình này - nhưng theo tôi hiểu thì nó chỉ có giao diện GUI, nhưng tôi cần thiết bị đầu cuối, để tự động hóa thứ này
ShockwaveNN

@ShockwaveNN: tốt, hãy nói như vậy trong câu hỏi của bạn sau đó. Cơ hội nhận được câu trả lời phù hợp cho câu hỏi của bạn tăng lên nếu bạn nêu câu hỏi thực tế của mình.
Daniel Andersson

1

Lưu ý cho bất cứ ai tìm thấy điều này ..

truy vấn fc không đáng tin cậy 100% trên đầu ra bộ ký tự.

Ví dụ Sữa chua trên dafont.com, phần này hiển thị một bộ ký tự trống, mặc dù nó chắc chắn có các ký tự trong đó.

$ 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)

Các phông chữ khác có hình vẽ trong đó như WW1 hiển thị một bộ ký tự giới hạn.

$ 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)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.