Văn phòng kiểm tra
Văn phòng kiểm tra
Hướng dẫn này cho bạn biết cách đọc các thuộc tính bảng được đặt tên, lấy dữ liệu bảng nhị phân thô và viết lại byte bảng đã sửa đổi vào một font TrueType.
TrueType và OpenTYpe fonts được tạo thành từ bảng nhị phân, mỗi xác định bởi một thẻ 4 byte. TtfTableSet tiết lộ các thuộc tính được gọi là Python cho bảng thông thường, và TtfFont cung cấp - Truy cập byte nguyên cho tất cả các bảng.
Đọc tên bảng
TtfTableSet Hiển thị đầu, hhea, maxp, os2, tên, post, cmap, loca, Hmtx và kern bảng.
from aspose_font.loader import FontLoader
from aspose_font.ttf.font import TtfFont
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
tables = ttf_font.ttf_tables
print("head table:", tables.head is not None)
print("kern table:", tables.kern is not None)Đọc Raw Table Bytes
TtfFont.get_table_bytes(tag) trả về nội dung nhị phân đầy đủ của bất kỳ bảng nào được xác định bởi thẻ bốn ký tự, cho phép kiểm tra cấp thấp hoặc tùy chỉnh.
ttf_font: TtfFont = FontLoader.open(“Roboto-Regular.ttf”) raw_name = ttf_font.get_table_bytes(“name”) print(f"name table: {len(raw_name)} bytes")
---
### Đọc bài viết thay đổi bảng
`TtfFont.set_table_bytes(tag, data)` thay thế nội dung nhị phân của một bảng, cho phép các sửa đổi tùy chỉnh bảng như sửa quy tắc GSUB hoặc cập nhật hồ sơ tên.
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
modified_bytes = b"..." # your modified table
ttf_font.set_table_bytes("GSUB", modified_bytes)Mẹo và Thực hành Tốt nhất
- Check
tables.kern is not NoneTrước khi truy cập dữ liệu kerning TtfTableSet.get_raw(tag)vàset_raw(tag, data)là các liên minh choget_table_bytes/set_table_bytes- Sử dụng
FontCleaner.clean_for_web()Thay vì loại bỏ bàn tay để tránh các vấn đề liên quan
Tóm tắt Tham chiếu API
| Class / Phương pháp | Description |
|---|---|
TtfFont.ttf_tables | Access tên miền bảng thuộc tính |
TtfFont.get_table_bytes(tag) | Đọc dữ liệu bảng binary nguyên chất |
TtfFont.set_table_bytes(tag, data) | Tạo dữ liệu bảng được sửa đổi |
TtfTableSet.get_raw(tag) | Thẻ: Get_table_bytes |
TtfTableSet.set_raw(tag, data) | Thẻ: Set_table_bytes |