Làm thế nào để làm việc với TTF Fonts trong Python
Hướng dẫn này cho thấy cách tải các phông chữ TTF, kiểm tra TtfFont thuộc tính, đọc bảng, lập tức biến font và chuyển đổi sang các định dạng khác bằng cách sử dụng Aspose.Font FOSS cho Python..ttf) là định dạng phông chữ phổ biến nhất. Aspose.Font FOSS tải chúng như: TtfFont Ví dụ, cung cấp quyền truy cập vào bảng, ax chữ số biến đổi, dữ liệu glyph và các tiện ích chuyển đổi.
Hướng dẫn từng bước
Bước 1: Cài Đặt Gói
Cài đặt gói FOSS từ PyPI bằng cách sử dụng lệnh pip dưới đây:
pip install "aspose-font>=1.0.0"Bước 2: Nhập các lớp học cần thiết
Import FontLoader và TtfFont để tải một phông chữ TTF và truy cập các thuộc tính được viết tắt của nó:
from aspose_font.loader import FontLoader
from aspose_font.ttf.font import TtfFontBước 3: Tải và kiểm tra một TTF Font
Tải về tệp TTF bằng cách sử dụng FontLoader.open() và đọc các thuộc tính cơ bản như tên, gia đình, và glyph count:
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
print(ttf_font.font_name)
print(ttf_font.font_family)
print(ttf_font.num_glyphs)Bước 4: Đọc bảng kern
Truy cập The ttf_tables tài sản và kiểm tra sự hiện diện của bảng kern theo tên:
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
kern = ttf_font.ttf_tables.kern
print("kern present:", kern is not None)Bước 5: Tạo một font biến động
Tải file font biến, kiểm tra is_variable,Và gọi instantiate() với một từ điển axis để tạo ra một trường hợp tĩnh:
from aspose_font.loader import FontLoader
from aspose_font.ttf.font import TtfFont
ttf_font: TtfFont = FontLoader.open("Roboto-VariableFont_wdth,wght.ttf")
if ttf_font.is_variable:
static = ttf_font.instantiate({"wght": 700.0})
print("Instantiated:", static.font_name)Bước 6: Chuyển sang WOFF2
Chuyển đổi một phông chữ TTF tải lên định dạng WOFF2 bằng cách đi qua FontType.WOFF2 để FontConverter.convert():
from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter
from aspose_font import FontType
font = FontLoader.open("Roboto-Regular.ttf")
woff2 = FontConverter.convert(font, FontType.WOFF2)Các vấn đề chung và Fixes
AttributeError: Font has no attribute ttf_tables - Sử dụng ttf_font: TtfFont = FontLoader.open(...). Các ttf_tables Tài sản là trên TtfFont,Không phải căn cứ Font.
is_variable là sai trên một font biến động - Một số chữ cái biến sử dụng một không tiêu chuẩn fvar Hình thức bảng. check ttf_font.fvar is not None như một sự thay thế.
instantiate() Lớn lên KeyError - Tờ axis phải là một thẻ 4char đã đăng ký (và g. "wght", "wdth") kiểm tra ttf_font.axes cho các tags có sẵn.
Thường xuyên hỏi câu hỏi
Sự khác biệt giữa TTF và OTF là gì?
OTF và TTF chia sẻ cùng một container nhị phân (SFNT). các phông chữ OT F thường sử dụng cph outlines trong khi các phông chữ TTF sử dụng TrueType quadratic curves. cả hai được tải bởi FontLoader.open().
Tôi có thể nhận được cặp kern từ một phông chữ TTF không?
Có. sử dụng TtfFont.get_kern_pairs() Để có được danh sách của KernPair đối tượng .
Thư viện có hỗ trợ các bộ sưu tập chữ cái (.ttc)?
Có. sử dụng FontLoader.open(source, collection_index=N) Chọn một font cụ thể từ TTC tập tin thu thập.