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

Aspose.Font FOSS voor Python

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

Werk programmatisch met lettertypen in Python

Aspose.Font FOSS voor Python is een pure-Python toolkit voor het laden, inspecteren, converteren, subsetten en previewen van lettertypen in 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 subsetting via FontSubsetter, en variabele lettertype‑animatie via AnimationPreviewBuilder. Lettertype‑metadata zoals naam, familie, stijl, aantal glyphs, codering en metriek zijn 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 fontontwerpgereedschap, webfont-pijplijnen, glyph-rendering-engines en elke Python-applicatie die fontbestanden moet lezen, transformeren of produceren. Voor de enterprise-productfamilie, zie Aspose.Font — Enterprise Product Family.

Lettertype‑laden en formaatdetectie

  • Laad lettertypen van bestandspaden of ruwe bytes met FontLoader.open() en FontLoader.load()
  • Automatisch detecteren van 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: stijging, daling, regelafstand, em‑kwadraat

Typische gebruikssituaties

  • Lettertypevalidatie en metadata‑extractie pipelines
  • CI/CD-controles die de naam van de lettertypefamilie en het aantal glyphs verifiëren
  • Webfont‑inname services die meerdere invoerformaten accepteren
  • Lettertype‑ontwerptools die metadata weergeven zonder een desktop‑runtime

Glyph‑toegang en pad‑inspectie

  • 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 outline paths als getypte opdrachten: MoveTo, LineTo, QuadraticTo, CurveTo, ClosePath
  • Toegang tot glyph bounding box, advance width en side bearings vanuit Glyph eigenschappen
  • Lees kerningparen uit KernPair voor nauwkeurige tekst‑lay‑outberekeningen

Typische gebruikssituaties

  • Glyph-dekkingcontroles voor meertalige tekstweergave
  • Omtrekextractie voor SVG-pad of vectorgeneratie
  • Validatie van kerningtabel in font QA-workflows
  • Onderzoek naar tekstshaping en low-level layout‑experimentatie

Lettertype‑conversie

  • Converteer tussen TTF, OTF, CFF, WOFF, WOFF2, EOT en Type 1 met FontConverter.convert()
  • Pas Bezier‑krommetypen aan met CurveAdapter.quad_to_cubic() en cubic_to_quads()
  • Converteer glyphpaden tussen kwadratisch en kubisch met convert_path_quad_to_cubic() en convert_path_cubic_to_quad()

Typische gebruikssituaties

  • Webfont-pijplijnen die TTF‑masterlettertypen naar WOFF2 converteren voor distributie
  • Typefoundry‑tooling die exporteert naar meerdere formaatdoelen vanuit één bron
  • Legacy EOT-conversie voor achterwaarts compatibele webfontstapels
  • Geautomatiseerde normalisatie van lettertype‑indeling in continue integratie

Lettertype-subsetting

  • Subset-lettertypen op Unicode-tekst met FontSubsetter.subset_by_text()
  • Subset op glyph‑ID‑lijst met FontSubsetter.subset_by_gids()
  • Maak webgeoptimaliseerde subsets met FontSubsetter.subset_for_web()
  • Pas benoemde preset‑profielen toe met FontSubsetter.subset_by_presets() en available_presets()
  • Analyseer subsetdekking met FontSubsetter.analyze_coverage() en analyze_web_coverage()

Typische gebruikssituaties

  • Verminderen van de WOFF2-payloadgrootte voor webpagina’s met beperkte tekensets
  • Taalspecifieke lettertype‑subsets produceren voor i18n‑implementaties
  • Lettertype‑licentie‑workflows die subsets per paginagroep distribueren
  • Prestatieoptimalisatie voor mobiele webapplicaties

Weboptimalisatie en variabele lettertypevoorbeelden

  • Verwijder legacy‑tabellen en Mac‑naamrecords met FontCleaner.clean_for_web()
  • Controleer de compatibiliteit van variabele fontas met CompatibilityChecker.compare_fonts() en compare_variable_instances()
  • Genereer geanimeerde APNG-asvegen met AnimationPreviewBuilder.build_axis_sweep()
  • Bouw meerstaps‑animatiepaden met AnimationPreviewBuilder.build_path()

Typische gebruikssituaties

  • Lettertype‑specimenpagina’s en interactieve asverkenners voor typefoundries
  • CI pipelines die het gedrag van variabele lettertypen verifiëren vóór distributie
  • Webprestatiepijplijnen die niet‑essentiële binaire tabellen verwijderen
  • Lettertypevoorbeeldminiaturen voor lettertypebeheertoepassingen

Laad een lettertypebestand

Open een TrueType- of OpenType-lettertype vanaf een bestandspad en lees de basismetadata.

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

Toegang tot glyphs voor een tekststring

Los alle glyphs op voor een Unicode‑codepunt 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)

Genereer een variabele lettertype-as sweep‑animatie

Maak een geanimeerde APNG die een variabele fontas van de startwaarde naar de eindwaarde doorloopt.

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

Maak een lettertype schoon voor webimplementatie

Verwijder legacy‑tabellen en Mac‑naamrecords om de binaire grootte te verkleinen vóór het webserveren.

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-, WOFF2- en EOT-formaten. Er zijn geen native afhankelijkheden vereist.

Hoe installeer ik Aspose.Font FOSS voor Python?

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

Welke lettertypeformaten worden ondersteund?

FontLoader.open() leest TTF, OTF, CFF, Type 1, WOFF, WOFF2 en EOT. FontConverter.convert() schrijft TTF, CFF, WOFF en WOFF2. EOT is alleen-lezen.

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 subsetten voor weblevering?

Ja. FontSubsetter.subset_by_text(font, text) retourneert een nieuwe Font die alleen de glyphs bevat die nodig zijn voor de opgegeven tekst. FontSubsetter.subset(font, codepoints) en subset_by_gids(font, gids) bieden fijnere controle.

  

Ondersteuning en leermiddelen

 Nederlands