Uvod u članak

TrueType fontovi (.ttf) i njihov OpenType nadkup (.otf) dominiraju. Oba formata dijele istu strukturu binarne tabele. Aspose. Font FOSS za Python izložava ovu strukturu. kroz TtfFont, omogućavajući izravni pristup pojedinim OpenType tabelama, podacima o parovima jezgra, varijabilne osovine fontova i skice glifa.

U skladu s člankom 1. TtfFont razred proširuje Font Priloga I. točki (a) i (b) ovog članka ne primjenjuje se na sljedeće: get_blob, get_table_bytes, set_table_bytes, i instantiate za promjenjivi font Zaključavanje osi. TtfTableSet imovina (ttf_tables) omogućuje tipkovani pristup najčešće dostupne OpenType tabele: head, hhea, maxp, os2, name, post.

Biblioteka je objavljena na PyPI-u kao: aspose-font i licenciran pod MIT Licencom. Ne mora imati obvezne komercijalne ovisnosti.


Glavne karakteristike

Upisivanje TTF i OTF fontova

Upotreba: FontLoader.open za učitavanje bilo koje datoteke TrueType ili OpenTyme fontova:

from aspose_font import FontLoader

loaded = FontLoader.open("fonts/Roboto-Regular.ttf")

print(loaded.font_name)
print(loaded.font_family)
print(loaded.font_style)
print(loaded.num_glyphs)

FontLoader.open Detektuje oblik font iz zaglavlja datoteke. .ttf (TrueType) i u članku 1. .otf (OpenType CFF) datoteke su podržane i oba vraćaju a TtfFont Primjer.


Pristup OpenType tablicama putem TtfTableSet-a

U skladu s člankom 1. ttf_tables svojstvo vraća a TtfTableSet s tipom dodatka za zajedničke uređaje OpenType tabele. Svaka svojina vraća objekt tablice ili None ako je nepostojanje:

U skladu s člankom 1. ttf_tables imovina na TtfFont vraća a TtfTableSet Dostupno. za proizvodnju proizvoda iz ovog podstavka:

  • headHeadTable | None
  • hheaHheaTable | None
  • maxpMaxpTable | None
  • os2Os2Table | None
  • nameNameTable | None
  • postPostTable | None

Svaka svojina vraća objekt tabele ili None Ako ta tabela nije prisutna u Pristup. TtfTableSet svojstva za provjeru određenih tabela prije čitanja U slučaju tabela koje nisu obuhvaćene imenovanim pristupnicima, upotrebite: TtfTableSet.get_raw(tag) u iznosu od: Prikupiti sirove bajtove s četiri znakova OpenType tag.


Čitanje sirovih tabličnih bajta

get_table_bytes(tag) vraća sirove bajtove za svaku OpenType tablicu. Use get_blob(tag) za varijantu “Nisu sigurni” koja vraća: None kada je tabela odsutna:

TtfFont U ovom članku se navode sljedeće kriteriji:

  • get_table_bytes(tag) -> bytes vraća sirove bajtove za imenovanu tablicu (izdiže ako je odsutan)
  • get_blob(tag) -> bytes | None povratne informacije None Ako je tabela odsutna (sigurna varijanta)

Obje metode prihvaćaju OpenType tabelu od četiri znaka kao što je: "cmap", "GDEF",ili "GPOS".- Koristi. get_blob kada je stol opcionalna tako da možete provjeriti za None prije obradu.


Srednja strana

get_kern_pairs() vraća sve parove jezgra kodirane u font. Svaki KernPair ima: left (GlyphId), right (glyphId) i value (int u jedinicama fontova):

from aspose_font import FontLoader

loaded = FontLoader.open("fonts/Roboto-Regular.ttf")

pairs = loaded.get_kern_pairs()
print(f"Kern pairs: {len(pairs)}")

for pair in pairs[:5]:
    print(f"  Left: {pair.left}  Right: {pair.right}  Value: {pair.value}")

Metrika fontova

Standardne metrike dostupne su putem metrics imovina:

from aspose_font import FontLoader

loaded = FontLoader.open("fonts/Roboto-Regular.ttf")

metrics = loaded.metrics
print(f"Units per em  : {metrics.units_per_em}")
print(f"Ascender      : {metrics.ascender}")
print(f"Descender     : {metrics.descender}")
print(f"Line gap      : {metrics.line_gap}")
print(f"Underline pos : {metrics.underline_position}")

Podrška za varijabilne fontove

za različite fontove, TtfFont izloženosti is_variable, variable_axes, i named_instances.- Koristi. get_axis(tag) da se dobije određena os pomoću njezine četiri slova Tag: u vezi s tim.:

from aspose_font import FontLoader

loaded = FontLoader.open("fonts/RobotoFlex.ttf")

print(f"Is variable: {loaded.is_variable}")
print(f"Axes       : {len(loaded.variable_axes)}")

U skladu s člankom 1. get_axis(tag) metoda na TtfFont -Primite: VariableAxis Četiri slova: U ovom slučaju, u skladu s člankom 21. stavkom 1. "wght" za težinu, "wdth" Vrati se: None ako je osovina: ne prisutni u font-u fvar Sto. -Ne, ne mogu!.


Preobražavanje fontova

to_bytes(font_type) konvertira font u drugačiji format. Koristite FontType uštednja za određivanje cilja:

from aspose_font import FontLoader, FontType

loaded = FontLoader.open("fonts/Roboto-Regular.ttf")

ttf_bytes = loaded.to_bytes(FontType.TTF)
with open("output/Roboto-copy.ttf", "wb") as fh:
    fh.write(ttf_bytes)

print(f"Serialized: {len(ttf_bytes)} bytes")

Brzi početak

Instaliraj knjižnicu:

.venv/bin/pip install aspose-font

Uplatiti font TTF i provjeriti ga:

from aspose_font import FontLoader, FontType

loaded = FontLoader.open("Roboto-Regular.ttf")

print(f"Font name : {loaded.font_name}")
print(f"Family    : {loaded.font_family}")
print(f"Glyphs    : {loaded.num_glyphs}")
print(f"Variable  : {loaded.is_variable}")

metrics = loaded.metrics
print(f"UPM       : {metrics.units_per_em}")

ttf_bytes = loaded.to_bytes(FontType.TTF)
print(f"Serialized: {len(ttf_bytes)} bytes")

Podržani formati

Format:ProstranjenjeČitaj.Pišite.
TTF.ttf
OTF.od
EOT.-Ne. Ne, ne mogu.
CFF.cff
TYPE1.pfb/.pfa
WOFF.-Ne, ne mogu.
WOFF2.woff2

Svi formati se učitavaju preko: FontLoader.open. TTF/OTF fontovi vraćaju a. TtfFont Primjer.


Otvoreni izvor i licenciranje

Aspose.Font FOSS for Python is released under the MIT License. You can use it in osobni, komercijalni i otvoreni izvorni projekti bez troškova. Izvorna koda je dostupna na GitHub-u i paket je distribuiran putem PyPI kao aspose-font.


Početak

Srodni resursi