Инспекция на таблицата с шрифтове
Инспекция на таблицата с шрифтове
Това ръководство показва как да се четат свойства на таблицата с име, да бъдат извлечени сурови данни от двоична таблица и да са записани модифицирани байтове в TrueType шрифт.
Шрифтовете TrueType и OpenTybe са съставени от двоични таблици, всяка идентифицирана с 4-байтов етикет. TtfTableSet излага наречените Python свойства за общи таблици, и TtfFont предвижда: Достъп с сурови байтове за всички таблици.
Четете таблици с имена
TtfTableSet Излага главата, hhea, maxp, os2, име, пост, cmap, loca, hmtx и kern таблици.
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)Четене на сурови битове от таблица
TtfFont.get_table_bytes(tag) Връща пълното двоично съдържание на всяка таблица, идентифицирана с нейния четиризначен етикет, което позволява проверка на ниско ниво или персонализирано анализиране.
from aspose_font.loader import FontLoader
from aspose_font.ttf.font import TtfFont
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 или актуализиране на записи с имена.
from aspose_font.loader import FontLoader
from aspose_font.ttf.font import TtfFont
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
modified_bytes = b"..." # your modified table
ttf_font.set_table_bytes("GSUB", modified_bytes)Съвети и най-добри практики
- Проверка.
tables.kern is not Noneпреди достъп до данни за коренното управление на системата; TtfTableSet.get_raw(tag)и в)set_raw(tag, data)Това са псевдоними за…get_table_bytes/set_table_bytes- Използване на:
FontCleaner.clean_for_web()вместо ръчно премахване на таблици, за да се избегнат проблеми с последователността
Снимка на API референтна информация
| Клас / метод | Описание на състоянието |
|---|---|
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 |