Перевірка таблиці шрифтів
Перевірка таблиці шрифтів
У цьому керівництві показано, як читати властивості названої таблиці, отримувати нерозроблені дані двоякісної таблици та писати модифіковані байти таблицы назад у шрифт TrueType.
Шрифти TrueType та OpenTyme складаються з двоякісних таблиць, кожна ідентифікована 4-байтовим тегом. TtfTableSet викриває названі властивості Python для загальних таблиць, і TtfFont передбачає: Доступ на байт для всіх таблиць.
Читання таблиць з іменами
TtfTableSet Виявляє голова, hhea, maxp, os2, ім’я, пост, 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)Читання бітів таблиці в сироті
TtfFont.get_table_bytes(tag) повертає повний двоякісний вміст будь-якої таблиці, визначеної її чотиризначним тегом, що дозволяє оглянути на низькому рівні або налаштований аналіз.
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 |