Introduction

Yazı dosyaları tabloların etrafında yapılandırılır - her tablo, glif çıkışları, karakter haritalama, metadata adlandırma veya yatay metrik gibi belirli bir veri kategorisini kaydeder. bu tabloları anlamak ve erişmek, yazı tipi analizi, meta verileri düzenlemek, kalite güvencesi ve biçim dönüşümü gibi görevler için gereklidir.

Aspose.Font FOSS for Python (aspose-font) OpenType ve TrueTYpe tablosunun tam setine, temiz bir Python API aracılığıyla doğrudan erişim sağlar. kütüphane MIT lisansı altında serbest dış bağımlılıklarla yayınlanır, bu nedenle lisans kaygısı olmadan herhangi bir projeye entegre edebilirsiniz.

Bu yazı kütüphanede mevcut olan anahtar tablo sınıfları aracılığıyla yürür - başlık metadata okumaktan glyph verilerini incelemek ve isim kayıtlarını değiştirmek için - hepsi tarafından desteklenir. TtfTableSet Konteyner Üzerine TtfFont.


Ana Özellikler

Bir yazı tipi yükleme ve erişim tablosu

Her yazı ile yüklendi FontLoader Tabloları ile ilgili detayları inceleyebilirsiniz. ttf_tables Mülkiyet üzerinde TtfFont.• The TtfTableSet nesne her standart tabloya tipik erişim sağlar, artı tohum byte erişimi aracılığıyla get_raw() Özel veya tanımlanmamış tablolar için.

import aspose_font

font = aspose_font.FontLoader.open("MyFont.ttf")
tables = font.ttf_tables

# Typed table access
head = tables.head
name = tables.name
cmap = tables.cmap

# Raw bytes for any table tag
raw_os2 = tables.get_raw("OS/2")

Başlık Masası Okumak

O zamanlar HeadTable temel yazı tipi geniş parametreleri: em, revizyon, sınır kutusu, oluşturma tarihi ve stil bayrakları. Bu değerler motorlar ve yazı tipleri render için kritiktir.

import aspose_font

font = aspose_font.FontLoader.open("MyFont.ttf")
head = font.ttf_tables.head

print(f"Units per em: {head.units_per_em}")
print(f"Revision: {head.font_revision}")
print(f"Bounding box: ({head.x_min}, {head.y_min}) to ({head.x_max}, {head.y_max})")
print(f"Mac style flags: {head.mac_style}")
print(f"Glyph data format: {head.glyph_data_format}")

Adı: Name Table ile Çalışma

O zamanlar NameTable tüm insan okunabilir metadata sahiptir: yazı tipi aile adı, tarzı, telif hakkı , lisans, tasarımcı ve açıklama. ad kimliği ile kayıtları sorgulayabilirsiniz, yerleştirilmiş isimleri alabilirsiniz veya yeniden marka için girişleri değiştirebilirsiniz.

import aspose_font

font = aspose_font.FontLoader.open("MyFont.ttf")
name_table = font.ttf_tables.name

# Read the font family name (name ID 1)
family = name_table.best_name(1, ["en"])
print(f"Family: {family}")

# List all localized versions of the full name (name ID 4)
localized = name_table.localized_names(4)
for lang, value in localized.items():
    print(f"  {lang}: {value}")

# Replace the font family name
name_table.replace_name(1, "MyCustomFamily")

CMAP Tablosu Kontrolü

O zamanlar CmapTable haritalar Unicode kod noktaları glif ID’ler. farklı platformlar ve kodlama kombinasyonları için çok sayıda alt tablo içerebilir. best_subtable() Kullanım durumunuz için en uygun haritalama yapmak.

import aspose_font

font = aspose_font.FontLoader.open("MyFont.ttf")
cmap = font.ttf_tables.cmap

# Get the best Unicode subtable
subtable = cmap.best_subtable()
print(f"Platform: {subtable.platform_id}, Encoding: {subtable.encoding_id}")

# Look up the glyph ID for 'A'
gid = subtable.get_gid(ord("A"))
print(f"Glyph ID for 'A': {gid}")

OS/2 ve Horizontal Metrikler

O zamanlar Os2Table OS/2 ve Windows özellikli metrikler, tipografik Ascender/Descender, yerleşim bayrakları ve Panose sınıflandırması dahil. HheaTable ve HmtxTable Tekstil şekillendirme için kullanılan yatay düzen metrikleri sağlar.

import aspose_font

font = aspose_font.FontLoader.open("MyFont.ttf")
os2 = font.ttf_tables.os2
hhea = font.ttf_tables.hhea

print(f"Typo ascender: {os2.s_typo_ascender}")
print(f"Typo descender: {os2.s_typo_descender}")
print(f"Embedding flags (fsType): {os2.fs_type}")
print(f"Panose: {os2.panose.hex()}")

print(f"Hhea ascender: {hhea.ascender}")
print(f"Max advance width: {hhea.advance_width_max}")
print(f"Number of hmetrics: {hhea.number_of_hmetrics}")

Kerning ve Glyph Data

O zamanlar KernTable Yüzükler yalıtımlı bir şekilde ayarlanabilir.Yükseklikler için GlyfTable TrueType yazı tipleri için gerçek glyph çıkış verilerini içerir. PostTable Glyph isimlerini çözmek için.

import aspose_font

font = aspose_font.FontLoader.open("MyFont.ttf")

# Kerning lookup
kern = font.ttf_tables.kern
if kern:
    pairs = kern.pairs
    print(f"Total kern pairs: {len(pairs)}")
    # Look up a specific pair by glyph IDs
    adjustment = kern.get(36, 57)
    print(f"Kern adjustment: {adjustment}")

# Glyph name from post table
post = font.ttf_tables.post
if post:
    glyph_name = post.glyph_name(0)
    print(f"Glyph 0 name: {glyph_name}")

Hızlı Başlangıç

pip install aspose-font>=1.0.0
import aspose_font

# Load any TTF or OTF font
font = aspose_font.FontLoader.open("MyFont.ttf")
tables = font.ttf_tables

# Print basic table info
print(f"Font: {font.font_name}")
print(f"Family: {font.font_family}")
print(f"Glyphs: {font.num_glyphs}")
print(f"Units/em: {tables.head.units_per_em}")

# Read name table entries
name_table = tables.name
for name_id in [0, 1, 2, 4, 5, 6]:
    value = name_table.best_name(name_id, ["en"])
    if value:
        print(f"  Name ID {name_id}: {value}")

# Check character coverage
cmap = tables.cmap
subtable = cmap.best_subtable()
for char in "ABCabc012":
    gid = subtable.get_gid(ord(char))
    print(f"  '{char}' -> glyph {gid}")

Desteklenen Formatlar

FormatExtensionReadWrite
TTF.TFK
OTF.OTP
CFF.CFF
WOFF.Wooff
WOFF2.YÜK 2
EOT.EOT
TYPE1.pfb / pfa için

Açık Kaynak & Lisans

Aspose.Font FOSS for Python is released under the MIT license. The source code is available on GitHub and the package is published on PyPI as aspose-font.Özgürsünüz, bunları kişisel ve ticari projelerde sınırlama olmaksızın kullanmak, değiştirmek ve dağıtmak.


Başlamaya başlar

İlgili Kaynaklar