1. Produkter
  2.   Aspose.Font
  3.   Aspose.Font FOSS for Python

Aspose.Font FOSS til Python

Open-source Python bibliotek til indlæsning, inspektion, konvertering og udtræk af TTF, OTF, CFF, WOFF, WOFF2 og EOT skrifttypefiler.

Arbejd med skrifttyper programmatisk i Python

Aspose.Font FOSS for Python er et rent-Python værktøjssæt til indlæsning, inspektion, konvertering, udtrækning og forhåndsvisning af skrifttyper på tværs af TrueType, OpenType, CFF, Type 1, WOFF, WOFF2 og EOT-formater. Biblioteket kører på Python 3.10 eller senere og kræver ingen eksterne OS-skrifttypebiblioteker eller native afhængigheder.

Biblioteket eksponerer et rent API til skrifttypeindlæsning via FontLoader, glyph‑adgang via GlyphAccessor, formatkonvertering via FontConverter, weboptimering via FontCleaner, tekstbevidst udtrækning via FontSubsetter, og variabel skrifttypeanimation via AnimationPreviewBuilder. Skrifttypemetadata såsom navn, familie, stil, glyph‑antal, kodning og målinger er tilgængelige gennem Font baseklassen uden at parse binære tabeller manuelt.

Aspose.Font FOSS er MIT-licenseret og kan installeres fra PyPI med en enkelt pip install-kommando. Det er egnet til skriftdesignværktøjer, webfont-pipelines, glyph-renderingsmotorer og enhver Python-applikation, der skal læse, transformere eller producere skrifttypefiler. For enterprise-produktfamilien, se Aspose.Font — Enterprise Product Family.

Indlæsning af skrifttyper og formatdetektion

  • Indlæs skrifttyper fra filstier eller rå bytes med FontLoader.open() og FontLoader.load()
  • Automatisk registrering af format: TTF, OTF, CFF, WOFF, WOFF2, EOT, Type 1
  • Få adgang til skrifttype-metadata via Font grundklassen: font_name, font_family, font_style, num_glyphs
  • Læs glyph‑kodningskort med FontEncoding.unicode_to_gid() og get_all_codepoints()
  • Undersøg skrifttype-målinger med FontMetrics: opstigning, nedstigning, linjemellemrum, em-firkant

Typiske anvendelsestilfælde

  • Fontvaliderings- og metadataudtræknings‑pipelines
  • CI/CD‑kontroller, der verificerer skrifttypens familienavn og glyph‑antal
  • Webfont‑indtagningstjenester, der accepterer flere inputformater
  • Fontdesignværktøjer, der viser metadata uden en desktop runtime

Glyph-adgang og stiinspektion

  • Hent glyphs efter ID eller Unicode med GlyphAccessor.get_glyph_by_id() og get_glyph_by_unicode()
  • Opløs alle glyffer for en streng med GlyphAccessor.get_glyphs_for_text()
  • Undersøg glyph‑omridsstier som indtastede kommandoer: MoveTo, LineTo, QuadraticTo, CurveTo, ClosePath
  • Få adgang til glyphs afgrænsningsboks, forløbsbredde og sidebæringer fra Glyph egenskaber
  • Læs kerningpar fra KernPair for nøjagtige tekstlayoutberegninger

Typiske brugsscenarier

  • Kontrol af glyf-dækning for flersproget tekstrendering
  • Konturudtrækning for SVG-sti eller vektorgenerering
  • Kerning-tabelvalidering i font QA-arbejdsprocesser
  • Forskning i tekstformning og lavniveau layout-eksperimentering

Skrifttypekonvertering

  • Konverter mellem TTF, OTF, CFF, WOFF, WOFF2, EOT og Type 1 med FontConverter.convert()
  • Tilpas Bezier‑kurvetyper med CurveAdapter.quad_to_cubic() og cubic_to_quads()
  • Konverter glyph‑stier mellem kvadratiske og kubiske med convert_path_quad_to_cubic() og convert_path_cubic_to_quad()

Typiske brugsscenarier

  • Webfont‑pipelines, der konverterer TTF‑masterfonte til WOFF2 til distribution
  • Typografi‑værktøj, der eksporterer til flere formatmål fra én kilde
  • Legacy EOT-konvertering til bagudkompatible webfont‑stakke
  • Automatiseret normalisering af skrifttypeformat i kontinuerlig integration

Font-undersætning

  • Opdel skrifttyper i delmængde efter Unicode‑tekst med FontSubsetter.subset_by_text()
  • Subset efter glyf‑ID‑liste med FontSubsetter.subset_by_gids()
  • Producér weboptimerede delmængder med FontSubsetter.subset_for_web()
  • Anvend navngivne forudindstillede profiler med FontSubsetter.subset_by_presets() og available_presets()
  • Analyser dækning af delmængde med FontSubsetter.analyze_coverage() og analyze_web_coverage()

Typiske brugsscenarier

  • Reducering af WOFF2-payloadstørrelse for websider med begrænsede tegnsæt
  • Produktion af sprog‑specifikke skrifttype‑undersæt til i18n‑udrulninger
  • Font-licensieringsarbejdsgange, der distribuerer per-side‑sæt delmængder
  • Performanceoptimering for mobile webapplikationer

Weboptimering og variable font‑forhåndsvisninger

  • Fjern legacy‑tabeller og Mac‑navneposter med FontCleaner.clean_for_web()
  • Kontroller kompatibilitet for variable skrifttype‑akse med CompatibilityChecker.compare_fonts() og compare_variable_instances()
  • Generer animerede APNG-akse-svejninger med AnimationPreviewBuilder.build_axis_sweep()
  • Byg flerstegs animationsstier med AnimationPreviewBuilder.build_path()

Typiske brugsscenarier

  • Fontprøvesider og interaktive akseudforskere for typografier
  • CI-pipelines der verificerer variabel skrifttypeadfærd før distribution
  • Web performance pipelines, der dropper ikke‑essentielle binære tabeller
  • Font‑forhåndsvisningsminiaturer til skrifthåndteringsprogrammer

Indlæs en fontfil

Åbn en TrueType- eller OpenType-skrift fra en filsti og læs dens grundlæggende metadata.

from aspose_font.loader import FontLoader
font = FontLoader.open("Roboto-Regular.ttf")
print(font.font_name)    # e.g. "Roboto"
print(font.font_family)  # e.g. "Roboto"
print(font.num_glyphs)   # e.g. 1294

Få adgang til glyffer for en tekststreng

Opløs alle glyphs for et Unicode‑kodepunkt og inspicer deres konturstier.

from aspose_font.loader import FontLoader
font = FontLoader.open("OpenSans-Regular.otf")
glyph_id = font.encoding.unicode_to_gid(0x41)  # Unicode for A
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)
for cmd in glyph.path.commands:
    print(type(cmd).__name__, cmd)

Generer en Variable Font Axis Sweep-animation

Opret en animeret APNG, der svejer en variabel skrifttypeakse fra start- til slutværdi.

from aspose_font.loader import FontLoader
from aspose_font.animation import AnimationPreviewBuilder

font = FontLoader.open("Roboto-VariableFont_wdth,wght.ttf")

asset = AnimationPreviewBuilder.build_axis_sweep(
    font,
    axis_tag="wdth",
    start_val=75.0,
    end_val=100.0,
    frames=3,
    fps=10,
    text="A",
    size=10.0,
    bounce=True,
)

asset.write_to("roboto-sweep-wdth.png")

Rens en font til webudrulning

Fjern legacy-tabeller og Mac-navn poster for at reducere binærstørrelsen før webbetjening.

from aspose_font.loader import FontLoader
from aspose_font.cleaner import FontCleaner
font = FontLoader.open("Roboto-Regular.ttf")
cleaned = FontCleaner.clean_for_web(font)
# DSIG, FFTM, meta tables removed; Mac platform name records stripped

Ofte stillede spørgsmål

Hvad er Aspose.Font FOSS til Python?

Det er et gratis, MIT-licenseret rent-Python bibliotek til indlæsning, inspektion, konvertering og subsetting af skrifttyper i TTF, OTF, CFF, Type 1, WOFF, WOFF2 og EOT-formater. Ingen native afhængigheder er påkrævet.

Hvordan installerer jeg Aspose.Font FOSS til Python?

Kør pip install "aspose-font>=1.0.0". Der er ingen systemniveau-afhængigheder. Biblioteket fungerer på Windows, macOS og Linux med Python 3.10 eller senere.

Hvilke fontformater understøttes?

FontLoader.open() læser TTF, OTF, CFF, Type 1, WOFF, WOFF2 og EOT. FontConverter.convert() skriver TTF, CFF, WOFF og WOFF2. EOT er skrivebeskyttet.

Er Font.to_bytes() tilgængelig?

Nej. Font.to_bytes() er ikke implementeret i grundklassen. Brug FontConverter.convert() til at producere en ny Font i det ønskede format.

Kan jeg lave et subset af en skrifttype til weblevering?

Ja. FontSubsetter.subset_by_text(font, text) returnerer en ny Font, der kun indeholder de glyffer, der kræves for den givne tekst. FontSubsetter.subset(font, codepoints) og subset_by_gids(font, gids) giver finere kontrol.

  

Support og læringsressourcer

 Dansk