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

Aspose.Font FOSS för Python

Open‑source Python-bibliotek för att läsa in, inspektera, konvertera och skapa delmängder av TTF-, OTF-, CFF-, WOFF-, WOFF2- och EOT‑teckensnittsfiler.

Arbeta med typsnitt programatiskt i Python

Aspose.Font FOSS för Python är ett ren-Python verktygssats för att ladda, inspektera, konvertera, skapa delmängder och förhandsgranska teckensnitt över TrueType-, OpenType-, CFF-, Type 1-, WOFF-, WOFF2- och EOT-format. Biblioteket körs på Python 3.10 eller senare och kräver inga externa OS-typsnittsbibliotek eller inhemska beroenden.

Biblioteket exponerar ett rent API för teckensnittsladdning via FontLoader, glyfåtkomst via GlyphAccessor, formatkonvertering via FontConverter, webboptimering via FontCleaner, textmedveten delmängdsbildning via FontSubsetter, och variabel teckensnittsanimation via AnimationPreviewBuilder. Teckensnittmetadata såsom namn, familj, stil, glyfantal, kodning och mått är tillgängliga via Font basklass utan att manuellt parsa binära tabeller.

Aspose.Font FOSS är MIT-licensierad och kan installeras från PyPI med ett enda pip install‑kommando. Den är lämplig för verktyg för teckensnittsdesign, webfont‑pipelines, glyfåtergivningsmotorer och alla Python-applikationer som behöver läsa, transformera eller producera teckensnittsfiler. För företagsproduktfamiljen, se Aspose.Font — Enterprise Product Family.

Typsnitts‑inläsning och formatdetektering

  • Läs in typsnitt från filsökvägar eller råa byte med FontLoader.open() och FontLoader.load()
  • Detektera format automatiskt: TTF, OTF, CFF, WOFF, WOFF2, EOT, Type 1
  • Åtkomst till teckensnittsmetadata via bas‑klassen Font: font_name, font_family, font_style, num_glyphs
  • Läs teckenkodningskartor med FontEncoding.unicode_to_gid() och get_all_codepoints()
  • Inspektera teckenmetrik med FontMetrics: höjd, nedgång, radavstånd, em‑kvadrat

Typiska användningsfall

  • Teckensnittvalidering och metadataextraktionspipelines
  • CI/CD‑kontroller som verifierar teckensnittsfamiljens namn och teckenantal
  • Webfont‑intagningstjänster som accepterar flera inmatningsformat
  • Typsnittdesignverktyg som visar metadata utan en skrivbordsruntime

Glyfåtkomst och baninspektion

  • Hämta glyphs efter ID eller Unicode med GlyphAccessor.get_glyph_by_id() och get_glyph_by_unicode()
  • Lös upp alla glyfer för en sträng med GlyphAccessor.get_glyphs_for_text()
  • Inspektera glyfkonturvägar som skrivna kommandon: MoveTo, LineTo, QuadraticTo, CurveTo, ClosePath
  • Få åtkomst till glyfens begränsningsruta, avancemangsbredd och sidobäringar från Glyph egenskaper
  • Läs kerningpar från KernPair för exakta textlayoutberäkningar

Typiska användningsfall

  • Kontroller av glyftäckning för flerspråkig textrendering
  • Konturutdrag för SVG‑sökväg eller vektorgenerering
  • Kerningtabellvalidering i font QA‑arbetsflöden
  • Forskning om textformning och låg‑nivå layout‑experimentering

Typsnittskonvertering

  • Konvertera mellan TTF, OTF, CFF, WOFF, WOFF2, EOT och Type 1 med FontConverter.convert()
  • Anpassa Bezier‑kurvtyper med CurveAdapter.quad_to_cubic() och cubic_to_quads()
  • Konvertera glyfvägar mellan kvadratiska och kubiska med convert_path_quad_to_cubic() och convert_path_cubic_to_quad()

Typiska användningsfall

  • Webfontspipelines som konverterar TTF‑mastertypsnitt till WOFF2 för distribution
  • Verktyg för typografi som exporterar till flera formatmål från en källa
  • Legacy EOT-konvertering för bakåtkompatibla webbteckensnittsstaplar
  • Automatiserad normalisering av teckensnittformat i kontinuerlig integration

Teckensnittsubsetting

  • Dela upp teckensnitt efter Unicode‑text med FontSubsetter.subset_by_text()
  • Delmängd med glyph-ID-lista med FontSubsetter.subset_by_gids()
  • Skapa webboptimerade delmängder med FontSubsetter.subset_for_web()
  • Använd namngivna förinställningsprofiler med FontSubsetter.subset_by_presets() och available_presets()
  • Analysera delmängdstäckning med FontSubsetter.analyze_coverage() och analyze_web_coverage()

Typiska användningsfall

  • Minska WOFF2-payloadstorlek för webbsidor med begränsade teckenuppsättningar
  • Skapa språk‑specifika teckensnittssubset för i18n‑distributioner
  • Arbetsflöden för teckensnittlicensiering som distribuerar delmängder per siduppsättning
  • Prestandaoptimering för mobila webbapplikationer

Webboptimering och förhandsvisningar av variabla teckensnitt

  • Ta bort äldre tabeller och Mac‑namnregister med FontCleaner.clean_for_web()
  • Kontrollera kompatibilitet för variabel teckensnittaxel med CompatibilityChecker.compare_fonts() och compare_variable_instances()
  • Generera animerade APNG‑axel‑svepningar med AnimationPreviewBuilder.build_axis_sweep()
  • Skapa flerstegsanimationsvägar med AnimationPreviewBuilder.build_path()

Typiska användningsfall

  • Typsnittsspecimensidor och interaktiva axelutforskare för typografier
  • CI-pipelines som verifierar variabel teckensnittsbeteende innan distribution
  • Webbprestandapipelines som släpper icke nödvändiga binära tabeller
  • Teckensnittsförhandsminiatyrer för teckensnittshanteringsprogram

Läs in en teckensnittsfil

Öppna ett TrueType- eller OpenType-typsnitt från en filsökväg och läs dess grundläggande 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

Åtkomst till glyfer för en textsträng

Lös alla glyfer för en Unicode‑kodpunkt och inspektera deras konturvägar.

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)

Generera en variabel teckensnittaxel‑svepanimation

Skapa en animerad APNG som sveper en variable font axis från startvärde till slutvärde.

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

Rensa ett teckensnitt för webbdistribution

Ta bort äldre tabeller och Mac‑namnregister för att minska binärstorleken innan webbservern levererar.

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

Vanliga Frågor

Vad är Aspose.Font FOSS för Python?

Det är ett gratis, MIT-licensierat pure-Python bibliotek för att ladda, inspektera, konvertera och skapa delmängder av teckensnitt i TTF, OTF, CFF, Type 1, WOFF, WOFF2 och EOT-format. Inga inhemska beroenden krävs.

Hur installerar jag Aspose.Font FOSS för Python?

Kör pip install "aspose-font>=1.0.0". Inga systemnivåberoenden behövs. Biblioteket fungerar på Windows, macOS och Linux med Python 3.10 eller senare.

Vilka teckensnittformat stöds?

FontLoader.open() läser TTF, OTF, CFF, Type 1, WOFF, WOFF2 och EOT. FontConverter.convert() skriver TTF, CFF, WOFF och WOFF2. EOT är endast läsbar.

Finns Font.to_bytes() tillgänglig?

Nej. Font.to_bytes() är inte implementerad i basklassen. Använd FontConverter.convert() för att skapa ett nytt Font i önskat format.

Kan jag skapa en delmängd av ett teckensnitt för webbleverans?

Ja. FontSubsetter.subset_by_text(font, text) returnerar ett nytt Font som endast innehåller de glyfer som krävs för den angivna texten. FontSubsetter.subset(font, codepoints) och subset_by_gids(font, gids) ger finare kontroll.

  

Stöd och Lärande Resurser

 Svenska