Python'da yazı tipi tabloları nasıl kullanılır

Python'da yazı tipi tabloları nasıl kullanılır

Bu rehber, TTF tablolarını nasıl okuduğunu, ham biner tablo bytelerini nasıl elde ettiğini ve değiştirilmiş tabla verilerini nasıl yazdığını gösterir. TtfFont PYTHON için FOSS. TrueType yazı tipleri, 4 karakter etiketiyle tanımlanan biner tablolarda tüm verileri kaydeder. Aspose.Font Foss açıklamasını yapar. TtfTableSet Adı: Tablo erişim ve TtfFont.get_table_bytes() / TtfFont.set_table_bytes() İkili erişim için.

Adım adım rehberlik

Adım 1: Paket yükleme

PIP’den Aspose.Font FOSS paketini aşağıdaki pip komutunu kullanarak yükleme:

pip install "aspose-font>=1.0.0"

Adım 2: Gerekli sınıflar ithal etmek

Import FontLoader ve TtfFont Bir yazı tipi dosyasını yüklemek ve tablo setine erişmek için:

from aspose_font.loader import FontLoader
from aspose_font.ttf.font import TtfFont

Adım 3: Adlandırılmış tablolar erişimi

TTF dosyasını yüklemek için FontLoader.open() Adı: Tabloların adı ile erişimi ttf_tables Mülkiyet :

ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
tables = ttf_font.ttf_tables
print("kern present:", tables.kern is not None)
print("cmap present:", tables.cmap is not None)

Adım 4: Raw Table Bytes’i okuyun

Bir tablo için hammadde ikili verileri 4 karakter etiketini geçerek okuyun get_table_bytes():

ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
raw = ttf_font.get_table_bytes("name")
print(f"name table: {len(raw)} bytes")

5. Adım: Değiştirilmiş Tablo Bitleri Yazın

Değiştirilmiş ikili verileri bir tabloya geri yazın set_table_bytes() Etiket ve bayt ücreti ile:

ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
modified = b"..."  # your modified binary data
ttf_font.set_table_bytes("GSUB", modified)

Toplam Sorunlar ve Çözümler

AttributeError: Font has no attribute ttf_tablesttf_tables Onu üzerinde TtfFont, Temel değil Font Sınıf - Kullanım ttf_font: TtfFont = FontLoader.open(...) almak için a Tipik referanslar için.

get_table_bytes Boş bahtleri geri getiriyor - Etiket tam olarak 4 karakter olmalıdır. (İhtiyaç duyulduğunda bir yer aralığına, örneğin). "kern" Hayır "KRN").

Sıkça Sorulan Sorular

Hangi isimli tablolar TtfTableSet’te sergilenir?

Baş, hhea, maxp, os2, isim, post, cmap, loca, Hmtx ve kern.

Yeni bir yazıya yeni bir tablo ekleyebilir miyim?

Evet. herhangi bir geçerli 4 byte etiket ve byt verileri geçin TtfFont.set_table_bytes(tag, data).

See Also

 Türkçe