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

Aspose.Font FOSS for Python

Open-source Python bibliotheek voor het laden, inspecteren, converteren en subsetten van TTF-, OTF-, CFF-, WOFF-, WOFF2- en EOT-lettertypebestanden.

Werk met lettertypen in Python

Aspose.Font FOSS voor Python is een pure-Python toolkit voor het laden, inspecteren, converteren, subsetten en previewen van lettertypen over TrueType, OpenType, CFF, Type 1, WOFF, WOFF2 en EOT-formaten. De bibliotheek draait op Python 3.10 of later en vereist geen externe OS-lettertypebibliotheken of native afhankelijkheden.

De bibliotheek biedt een schone API voor het laden van lettertypen via FontLoader, glyph-toegang via GlyphAccessor, formaatconversie via FontConverter, weboptimalisatie via FontCleaner, tekstbewuste subsetten via FontSubsetter, en variabele lettertype-animatie via AnimationPreviewBuilder. Lettertype-metadata zoals naam, familie, stijl, aantal glyphs, codering en metriek is toegankelijk via de Font basisklasse zonder handmatig binaire tabellen te parseren.

Aspose.Font FOSS is MIT-licentie en installeerbaar vanaf PyPI met een enkel pip install-commando. Het is geschikt voor lettertype-ontwerptools, webfont-pijplijnen, glyph-rendering-engines en elke Python applicatie die lettertypebestanden moet lezen, transformeren of produceren. Voor de enterprise-productfamilie, zie Aspose.Font — Enterprise Product Family.

Font laden en formatten detecteren

  • Laad lettertypen vanaf bestandspaden of ruwe bytes met FontLoader.open() en FontLoader.load()
  • Detecteer automatisch het formaat: TTF, OTF, CFF, WOFF, WOFF2, EOT, Type 1
  • Toegang tot lettertype‑metadata via de Font basisklasse: font_name, font_family, font_style, num_glyphs
  • Lees glyph‑encoderingstabellen met FontEncoding.unicode_to_gid() en get_all_codepoints()
  • Inspecteer lettertype‑metriek met FontMetrics: ascent, descent, line gap, em-square

Typische gebruiksgevallen

  • Pipelines voor het valideren van lettertypen en het extraheren van metagegevens
  • CI/CD-controles die de lettertypefamilie en het aantal glyfen verifiëren
  • Web-lettertypen ingestigingsdiensten die meerdere inputformaten accepteren
  • Fontontwerpinstrumenten die metadata weergeven zonder een desktop runtime

Glyph-toegang en routeinspectie

  • Haal glyphs op op ID of Unicode met GlyphAccessor.get_glyph_by_id() en get_glyph_by_unicode()
  • Los alle glyphs op voor een string met GlyphAccessor.get_glyphs_for_text()
  • Inspecteer glyph-outlinepaden als getypte commando’s: MoveTo, LineTo, QuadraticTo, CurveTo, ClosePath
  • Toegang tot de glyph bounding box, advance width en side bearings via Glyph eigenschappen
  • Lees kerning pairs uit KernPair voor nauwkeurige tekst‑layoutberekeningen

Typische gebruiksgevallen

  • Glyph-dekkingcontroles voor meertalige tekstweergave
  • Ontwerp-extractie voor SVG-pad of vectorgeneratie
  • Kerntabelvalidatie in QA-werkstromen voor lettertypen
  • Onderzoek naar tekstvorming en experimenten met lage lay-outs

Fontconversie

  • Omzetten tussen TTF, OTF , CFF, WOFF , WOff2, EOT en Type 1 met FontConverter.convert()
  • Bezier-curve types aanpassen met CurveAdapter.quad_to_cubic() en cubic_to_quads()
  • Omschakel glyphpaden tussen vierkante en kubische met convert_path_quad_to_cubic() en convert_path_cubic_to_quad()

Typische gebruiksgevallen

  • Web-lettertypepipelines die TTF-masterletters omzetten naar WOFF2 voor distributie.
  • Type gietwerktuigen die vanuit één bron naar meerdere formaten worden geëxporteerd.
  • Oude EOT-conversie voor achterwaarts compatibele weblettertypenstacks
  • Geautomatiseerde normalisatie van het lettertypeformaat in continue integratie

Font-subsetting

  • Ondersets lettertypen door Unicode-tekst met FontSubsetter.subset_by_text()
  • Subset door glyph ID-lijst met FontSubsetter.subset_by_gids()
  • Web-geoptimaliseerde subset produceren met FontSubsetter.subset_for_web()
  • Gebruik voorgezette profielen met FontSubsetter.subset_by_presets() en available_presets()
  • Analyseer de dekking van een subset met FontSubsetter.analyze_coverage() en analyze_web_coverage()

Typische gebruiksgevallen

  • Vermindering van de WOFF2-nutbelasting voor webpagina’s met beperkte tekensets.
  • Produceren van taal-specifieke lettertypeonderdelen voor i18n-implementaties
  • Fontlicentiëring workflows die subset per pagina-set distribueren
  • Optimalisatie van de prestaties voor mobiele webtoepassingen

Weboptimalisatie en variabele lettertypevoorzieningen

  • Strip verouderde tabellen en Mac naam records met FontCleaner.clean_for_web()
  • Controleer de compatibiliteit van variabele lettertype met CompatibilityChecker.compare_fonts() en compare_variable_instances()
  • Genereer geanimeerde APNG-aswisselingen met AnimationPreviewBuilder.build_axis_sweep()
  • Maak animatiepaden met meerdere stappen met AnimationPreviewBuilder.build_path()

Typische gebruiksgevallen

  • Schriftmonsters en interactieve asverkenners voor typegieterijen
  • CI-pipelines die het variabele lettertypegedrag verifiëren vóór distributie
  • Webperformance-pipelines die niet-essentiële binaire tabellen laten vallen
  • Miniatuurvoorbeeld van lettertypen voor toepassingen voor het beheer van letterstippen

Een lettertype-bestand laden

Open een TrueType- of OpenTyme-lettertype vanaf een bestandspad en lees de basis 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

Access Glyphs voor een tekstreeks

Los alle glyfen op voor een Unicode-code punt en inspecteer hun contourpaden.

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)

Een variabele lettertype-axis-sweep animatie genereren

Maak een geanimeerde APNG die de variabele lettertype van begin tot eindwaarde doorzoekt.

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

Schrift voor webimplementatie schoonmaken

Strip oude tabellen en Mac-naam records om de binaire grootte te verminderen voor webserving.

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

Veelgestelde vragen

Wat is Aspose.Font FOSS voor Python?

Het is een gratis, MIT-gelicentieerde pure Python bibliotheek voor het laden, inspecteren, converteren en subsetten van lettertypen in TTF-, OTF- , CFF-, Type-1- , WOFF- en EOT-formaten. Geen native afhankelijkheden zijn vereist.

Hoe installeer ik Aspose.Font FOSS voor Python?

Voer pip install "aspose-font>=1.0.0" uit. Er zijn geen systeemafhankelijke afhankelijkheden nodig. De bibliotheek werkt op Windows, macOS en Linux met Python 3.10 of later.

Welke lettertypen worden ondersteund?

FontLoader.open() leest TTF, OTF , CFF, Type 1, WOFF , WOff2 en EOT. FontConverter.convert() schrijft TFT, CFC, WOFF en WOFL2. Eot is alleen voor leeswerk.

Is Font.to_bytes ((() beschikbaar?

Nee. Font.to_bytes() is niet geïmplementeerd in de basisklasse. Gebruik FontConverter.convert() om een nieuwe Font in het gewenste formaat te produceren.

Kan ik een lettertype voor weblevering instellen?

Ja. FontSubsetter.subset_by_text(font, text) geeft een nieuwe Font terug die alleen de glyfen bevat die voor de gegeven tekst nodig zijn.FontSubsetter.subset(font, codepoints) en subset_by_gids(font, gids) geven fijnere controle.

  

Ondersteuning en leermiddelen

 Nederlands