Introduction

A betűtípusok táblázatok körül vannak szerkezetelve minden egyes tábla tárol egy adott adathalátort, mint például a glyph-outline-t, karakterek feltérképezését, metaadatok megnevezését vagy horizontális méréseket. Ezeknek az asztaloknak a megértése és hozzáférése elengedhetetlen olyan feladatokhoz, amelyekhez font elemzés, metadatakészítés, minőségbiztosítás és formázási konverzió szükséges.

Aspose.Font FOSS for Python (aspose-fontA könyvtár a MIT licenc alatt kerül kiadásra, nulla külső függőséggel. Így bármilyen projektbe integrálhatja anélkül, hogy jogalanyok gondja lenne vele.

Ez a bejegyzés átjárja az alap táblázat osztályok elérhető könyvtár olvasás fejléc metadata ellenőrzése gliph adatok és módosítása név rekordokat ?? mind támogatott a TtfTableSet tartály a TtfFont.


Fő jellemzői

Font betöltése és asztalok elérése

Minden betöltött fontot. FontLoader a táblázatokat az elemzéssel mutatja ki. ttf_tables ingatlan a TtfFont.A… a… TtfTableSet objektum megadja a gépelt hozzáférést minden szabványos táblázat, plusz nyers bájtok hozzáférés keresztül get_raw() egyedi vagy nem ismert asztalok esetében.

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")

A főasztal olvasása

A Bizottság HeadTable Az elemek font-széles paramétereket tárolnak: egységek em, felülvizsgálat, határoló doboz, létrehozási dátum és stílus zászlók. Ezek az értékek kritikusak a renderelő motorok és betűtípus érvényesítők számára.

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}")

A név táblázatával való munka

A Bizottság NameTable Az adatbázisban az emberek által olvasható metaadatok vannak: betűtípus neve, stílus, szerzői jog, licenc, tervező és leírás. A rekordokat név-ID alapján kérdezheti meg, lokalizált neveket kaphat vagy módosíthat bejegyzéseket a rebranding céljából.

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")

A CMap táblázat ellenőrzése

A Bizottság CmapTable Unicode kódpontokat jelöl a glyph ID-kba. Több altáblát is tartalmazhat különböző platformok és kódolási kombinációkhoz. Használja az alábbiakat: best_subtable() hogy a legmegfelelőbb térképet kapja az Ön felhasználási esete számára.

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 és horizontális mérések olvasása

A Bizottság Os2Table OS/2 és Windows-specifikus mérőszámokat biztosít, beleértve a tipográfiai felfelé/lecsúszó irányt, az ilyesmi jelzőket és a Panose osztályozást. HheaTable és a következők: HmtxTable a szövegformáláshoz használt vízszintes elrendezés mérőméreteket.

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 és Glyph adatok

A Bizottság KernTable A kerning párokat a vízszintes távolságok beállításához tárolja. GlyfTable tartalmazza a tényleges glyph körvonaladatokat TrueType betűtípusok. Használhatja is az alábbiakat: PostTable a glifok nevének megoldására.

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}")

Gyors kezdés

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}")

Támogatott formátumok

FormatExtensionReadWrite
TTF.ttf
OTF.otf
CFF.cff
WOFF.- Mi az?
WOFF2.woff2
EOT.eot
TYPE1.pfb/.pfa

Nyitott forráskódú és licenckészítés

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.A felhasználók szabadon használhatják, módosíthatják és terjeszthetik a személyes vagy kereskedelmi projektjeikben.


Kezdjük!

Kapcsolatos erőforrások