การตรวจสอบตารางตัวอักษร
การตรวจสอบตารางตัวอักษร
คู่มือนี้แสดงวิธีการอ่านคุณสมบัติตารางที่มีชื่อ, การค้นหาข้อมูลตราคู่ไร้ผล และเขียนไบต์ตลาดที่เปลี่ยนแปลงกลับสู่ตัวอักษร TrueType.
TrueType และ OpenTybe แฟนต์ประกอบด้วยตารางไบนารี แต่ละตัวถูกระบุโดย tag 4 ไบท์. TtfTableSet เปิดตัว Properties Python ที่มีชื่อสําหรับตารางทั่วไป และ TtfFont เสนอให้ การเข้าถึงไบต์สดสําหรับตารางทั้งหมด.
การอ่านตารางที่มีชื่อ
TtfTableSet เปิดตัว head, hhea, maxp, os2, ชื่อ, post, cmap, loca, hmtx และตารางคาร์น.
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)การอ่านบายต์ตาราง Raw
TtfFont.get_table_bytes(tag) กลับเนื้อหาไบนารีเต็มของตารางใดที่ระบุด้วยแท็ก 4 ตัวอักษรของมัน เพื่อให้สามารถตรวจสอบในระดับต่ําหรือพาร์สตามความต้องการ.
ttf_font: TtfFont = FontLoader.open(“Roboto-Regular.ttf”) raw_name = ttf_font.get_table_bytes(“name”) print(f"name table: {len(raw_name)} bytes")
---
### การเขียนบายต์ตารางที่เปลี่ยนแปลง
`TtfFont.set_table_bytes(tag, data)` แทนเนื้อหาไบนารีของตาราง ทําให้สามารถปรับเปลี่ยนตราแบบพิเศษ เช่น การแก้ไขกฎ GSUB หรือการอัพเดทบันทึกชื่อ.
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
modified_bytes = b"..." # your modified table
ttf_font.set_table_bytes("GSUB", modified_bytes)เคล็ดลับและปฏิบัติที่ดีที่สุด
- Check
tables.kern is not Noneก่อนการเข้าถึงข้อมูล kerning TtfTableSet.get_raw(tag)และset_raw(tag, data)เป็นชื่อฉายาสําหรับget_table_bytes/set_table_bytes- การใช้งาน
FontCleaner.clean_for_web()แทนที่จะลบตารางด้วยมือเพื่อหลีกเลี่ยงปัญหาความสอดคล้อง
คําอธิบายการพบบ่อย API
| ประเภท / กลไก | Description |
|---|---|
TtfFont.ttf_tables | การเข้าถึงสมบัติตารางที่มีชื่อ |
TtfFont.get_table_bytes(tag) | อ่านข้อมูลตารางไบนารีสด |
TtfFont.set_table_bytes(tag, data) | เขียนข้อมูลตารางที่เปลี่ยนแปลง |
TtfTableSet.get_raw(tag) | ชื่อฉายสําหรับ get_table_bytes |
TtfTableSet.set_raw(tag, data) | ชื่อฉายสําหรับ set_table_bytes |