Перевірка таблиці шрифтів

Перевірка таблиці шрифтів

Перевірка таблиці шрифтів

У цьому керівництві показано, як читати властивості названої таблиці, отримувати нерозроблені дані двоякісної таблици та писати модифіковані байти таблицы назад у шрифт 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

See Also

 Українська