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:
head—HeadTable | Nonehhea—HheaTable | Nonemaxp—MaxpTable | Noneos2—Os2Table | Nonename—NameTable | Nonepost—PostTable | 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) -> bytesvraća sirove bajtove za imenovanu tablicu (izdiže ako je odsutan)get_blob(tag) -> bytes | Nonepovratne informacijeNoneAko 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.