Làm thế nào để làm việc với các phông chữ CFF trong Python
CFF (Compact Font Format) là định dạng outline được sử dụng trong các phông chữ OpenType và tự động. .cff file. Aspose.Font FOSS đại diện cho các phông chữ CFF như: CffFont Các trường hợp, mở rộng Cơ sở Font - Khóa và tiết lộ dữ liệu CFF-specific.
Hướng dẫn từng bước
Bước 1: Cài Đặt Gói
pip install "aspose-font>=1.0.0"Bước 2: Nhập các lớp học cần thiết
from aspose_font.loader import FontLoader
from aspose_font.cff.font import CffFont
from aspose_font import FontTypeBước 3: Tải font CFF
Call FontLoader.open() Con đường đến của bạn .cff file. object returned là một CffFont ví dụ cho thấy số glyph, tên chữ và các thuộc tính cụ thể của CFF:
font = FontLoader.open("MyFont.cff")
print(font.font_name)
print(font.num_glyphs)Bước 4: Truy cập cặp kernel
Nhập font tải lên CffFont,Sau đó gọi get_kern_pairs() để lấy lại danh sách các bản ghi cặp kern. không phải tất cả các phông chữ CFF chứa dữ liệu kern; kiểm tra chiều dài trước khi iterating:
from aspose_font.loader import FontLoader
from aspose_font.cff.font import CffFont
cff_font: CffFont = FontLoader.open("MyFont.cff")
kern_pairs = cff_font.get_kern_pairs()
print(f"kern pairs: {len(kern_pairs)}")Bước 5: Chuyển đổi CFF sang TTF
Đặt tải tải CffFont để FontConverter.convert() Với FontType.TTF để tạo ra một mới TtfFont Trong TTF outline định dạng:
from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter
from aspose_font import FontType
font = FontLoader.open("MyFont.cff")
ttf = FontConverter.convert(font, FontType.TTF)Các vấn đề chung và Fixes
CffFont has no attribute cff_font — cff_font Là một tài sản trên TtfFont cái này trả lại dữ liệu CFF được nhúng, không dựa trên cơ sở Font - Đối với việc sử dụng tệp CFF độc lập CffFont trực tiếp .
Cặp kern kosong - Không phải tất cả các phông chữ CFF đều chứa dữ liệu cặp kern. len(cff_font.get_kern_pairs()) > 0 trước khi iterating.
Thường xuyên hỏi câu hỏi
Sự khác biệt giữa CffFont và TtfFon là gì?
CffFont đại diện cho các tập tin CFF độc lập. TtfFont đại diện cho các tệp TTF/OTF; một OTF có thể bao gồm một outline CFF có sẵn thông qua ttf_font.cff_font.
Tôi có thể chuyển đổi font CFF sang WOFF2 không?
Có . FontConverter.convert(font, FontType.WOFF2) làm việc với bất kỳ Font Thông tin bao gồm CffFont.