Uvod u članak
Embedded OpenType (EOT) je kompaktni format fontova koji je izvorno razvijen za ugradnju TrueTypa fonta u web stranice. EOT datoteka okružuje TTF ili OTF font s fiksnom veličinom zaglavlja koja sadrži polja metapodataka koje opisuju dimenzije, verziju, set znakova i dozvole ugrađivanja. Iako se moderni razvoj weba uvelike preselio na WOFF/WOFF2, E OT datotekama ostaje u prometu u starim dokumentima i poduzećkim aplikacijama.
Aspose.Font FOSS for Python provides direct access to EOT font internals through the EotFont razred i njegov drug, EotHeader.Možete učitati EOT datoteku s FontLoader.open, čitati polja zaglavlja, proći kroz unutarnji TtfFont, i serijalizirati rezultat natrag na bajtove ili datoteku koristeći Font.save.
Biblioteka je objavljena na PyPI-u kao: aspose-font i licenciran pod MIT Licencom. Nema obavezne komercijalne ovisnosti i radi sa standardnim Python 3 runtimeom.
Glavne karakteristike
Uplatiti EOT fontove
Upotreba: FontLoader.open za učitavanje EOT datoteke s puta ili objekta bajtova. Metoda vraća se: EotFont U slučaju da je to moguće, mora se provjeriti:
from aspose_font import FontLoader, EotFont
font = FontLoader.open("fonts/sample.eot")
assert isinstance(font, EotFont)
print(font.font_name) # e.g. "Roboto"
print(font.font_family) # e.g. "Roboto"
print(font.num_glyphs) # number of glyphs in the inner font
FontLoader.open čita proširenje datoteke i magija zaglavlja za otkrivanje formata automatski. font_type argument je potreban za zajedničke datoteke fontova.
Čitanje EotHeader metapodataka
EotFont izloži polja za naslov direktno kao svojstva na razredu. U slučaju da je to moguće, u skladu s člankom 13. stavkom 1. točke (a) ovog članka.:
from aspose_font import FontLoader, EotFont, EotSerializer
# Load EOT — FontLoader returns an EotFont instance for .eot files
loaded = FontLoader.open("fonts/sample.eot")
# Serialize back to bytes to confirm the font loaded correctly
eot_bytes = EotSerializer.serialize(loaded)
print(f"EOT data loaded: {len(eot_bytes)} bytes")
# Base Font properties work on any loaded font
print("Font name:", loaded.font_name)
print("Glyphs :", loaded.num_glyphs)
U skladu s člankom 1. EotFont Ako je to moguće, razvrstite se na sljedeće metapodatke:
eot_version(intU ovom slučaju, u skladu s člankom 21. stavkom 1. točka (a) Uredbe (EU) br.0x00020002)flags(int) ugrađivanje znakova za odobrenjecharset(intU ovom slučaju, u skladu s člankom 16. stavkom 1. točkom (a) točke (b) ovog članka.italic(int) italična zastava (0 ili 1)weight(int) težina slova (npr. 400 za redovite, 700 za dvostruke)fs_type(int) OS/2 fsType bitovi za ugradnju
Upotreba: flags i u članku 1. fs_type kako bi se utvrdilo da li font dopušta podmještanje ili Ugrađivanje, što je relevantno pri obradi fontova za redistribucijske cijevi.
Pristup unutarnjem TTFont-u
Svaki. EotFont Završava standardni TrueType font. inner_font Izvješća o imovini u skladu s člankom TtfFont Primjer, omogućava vam pristup cijelom TrueType tablici:
from aspose_font import FontLoader, EotFont
loaded = FontLoader.open("fonts/sample.eot")
# Metrics are accessible directly from the loaded font
metrics = loaded.metrics
print("Units per em :", metrics.units_per_em)
print("Ascender :", metrics.ascender)
print("Descender :", metrics.descender)
print("Line gap :", metrics.line_gap)
U skladu s člankom 1. inner_font imovina na EotFont Vrati se zavojena. TtfFont U tom slučaju, u skladu s člankom U tom slučaju, u skladu s člankom 15. stavkom 1. točkom (a) ovog članka, ako je potrebno, podnositelj zahtjeva može na temelju tog člana provesti istragu.
Serijalizacija EOT-a u bajtove
EotSerializer.serialize pretvara bilo koji Font Objekt za EOT bajtni niz:
from aspose_font import FontLoader, EotFont, EotSerializer
font = FontLoader.open("fonts/sample.eot")
assert isinstance(font, EotFont)
eot_bytes = EotSerializer.serialize(font)
with open("output/sample_copy.eot", "wb") as fh:
fh.write(eot_bytes)
print(f"Serialized {len(eot_bytes)} bytes")
U slučaju da je to moguće, provjerite sljedeće:
EotSerializer.serialize prihvaća bilo koji Font Primjer, tako da možete učitati TTF i Serijalizirati ga direktno na EOT bajtove:
from aspose_font import FontLoader, EotFont, EotSerializer
ttf = FontLoader.open("fonts/Roboto-Regular.ttf")
eot_bytes = EotSerializer.serialize(ttf)
with open("output/Roboto-Regular.eot", "wb") as fh:
fh.write(eot_bytes)
reloaded = FontLoader.open("output/Roboto-Regular.eot")
assert isinstance(reloaded, EotFont)
print("Converted and verified:", reloaded.font_name)
Metrika fontova i parovi jezgra
U skladu s člankom 1. EotFont naslijedi punu Font Interfejs, tako da su metrike i kodiranje dostupna izravno bez prolaska kroz: inner_font:
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/sample.eot")
metrics = loaded.metrics
print(f"Ascender : {metrics.ascender}")
print(f"Descender: {metrics.descender}")
print(f"Line gap : {metrics.line_gap}")
print(f"Underline: {metrics.underline_position}")
for pair in loaded.get_kern_pairs():
print(f" Kern: {pair}")
Brzi početak
Instaliraj knjižnicu:
.venv/bin/pip install aspose-font
Uplatiti i provjeriti EOT font:
from aspose_font import FontLoader, EotFont, EotSerializer
loaded = FontLoader.open("sample.eot")
# Base font info
print(f"Font name : {loaded.font_name}")
print(f"Glyphs : {loaded.num_glyphs}")
# Metrics
metrics = loaded.metrics
print(f"UPM : {metrics.units_per_em}")
print(f"Ascender : {metrics.ascender}")
# Serialize the loaded font back to EOT bytes
eot_bytes = EotSerializer.serialize(loaded)
print(f"Serialized: {len(eot_bytes)} bytes")
Podržani formati
| Format: | Proračunska sredstva | Č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 navedeni gore podržavaju se za učitavanje putem: FontLoader.open.Pisanje. na određeni format koristi Font.save ili: EotSerializer.serialize za EOT.
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.