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

Aspose.Font FOSS for Python

Open-Source Python-Bibliothek zum Laden, Inspizieren, Konvertieren und Subsetzen von TTF-, OTF-, CFF-, WOFF-, WOFF2- und EOT-Schriftdateien.

Arbeiten Sie programmatisch mit Schriftarten in Python

Aspose.Font FOSS für Python ist ein reines Python-Toolkit zum Laden, Inspizieren, Konvertieren, Subsetzen und Vorschauen von Schriftarten in den Formaten TrueType, OpenType, CFF, Type 1, WOFF, WOFF2 und EOT. Die Bibliothek läuft auf Python 3.10 oder höher und erfordert keine externen OS‑Schriftbibliotheken oder native Abhängigkeiten.

Die Bibliothek stellt ein sauberes API für das Laden von Schriftarten über FontLoader, den Glyphenzugriff über GlyphAccessor, die Formatkonvertierung über FontConverter, die Weboptimierung über FontCleaner, das textbewusste Subsetzen über FontSubsetter und die Animation variabler Schriften über AnimationPreviewBuilder bereit. Schriftmetadaten wie Name, Familie, Stil, Glyphenzahl, Kodierung und Metriken sind über die Basisklasse Font zugänglich, ohne binäre Tabellen manuell zu parsen.

Aspose.Font FOSS ist unter der MIT-Lizenz verfügbar und kann mit einem einzigen pip‑install‑Befehl von PyPI installiert werden. Es eignet sich für Werkzeuge zur Schriftgestaltung, Web‑Font‑Pipelines, Glyph‑Rendering‑Engines und jede Python-Anwendung, die Schriftdateien lesen, transformieren oder erzeugen muss. Für die Enterprise‑Produktfamilie siehe Aspose.Font — Enterprise Product Family.

Schriftladen und Formaterkennung

  • Laden Sie Schriftarten aus Dateipfaden oder rohen Bytes mit FontLoader.open() und FontLoader.load()
  • Automatisch Format erkennen: TTF, OTF, CFF, WOFF, WOFF2, EOT, Type 1
  • Greifen Sie über die Basisklasse Font auf Schriftart‑Metadaten zu: font_name, font_family, font_style, num_glyphs
  • Lesen Sie Glyphen‑Codierungskarten mit FontEncoding.unicode_to_gid() und get_all_codepoints()
  • Untersuchen Sie Schriftmetriken mit FontMetrics: Aufstieg, Abstieg, Zeilenabstand, Em‑Quadrat

Typische Anwendungsfälle

  • Schriftwahrnehmung und Metadaten-Extraktionspipelines
  • CI/CD-Kontrollen zur Überprüfung des Schriftfamiliennamens und der Zahl der Glyphen
  • Web-Schriftzugriffdienste, die mehrere Eingabeformate akzeptieren
  • Schriftentwurfswerkzeuge, die Metadaten ohne Desktop-Laufzeit anzeigen

Glyph-Zugriff und Wegüberprüfung

  • Glyphs nach ID oder Unicode mit GlyphAccessor.get_glyph_by_id() und get_glyph_by_unicode() abrufen
  • Alle Glyphs für einen String mit GlyphAccessor.get_glyphs_for_text() auflösen
  • Glyph-Umrisspfade als getippte Befehle inspizieren: MoveTo, LineTo, QuadraticTo, CurveTo, ClosePath
  • Auf die Glyph-Bounding-Box, die Vorwärtsbreite und die Seitenabstände über Glyph Eigenschaften zugreifen
  • Kerning-Paare aus KernPair für genaue Textlayout-Berechnungen lesen

Typische Anwendungsfälle

  • Glyphen-Abdeckungskontrollen für mehrsprachige Textdarstellung
  • Umrissextraktion für die SVG-Pfad- oder Vektorgenerierung
  • Validierung der Kerntabellen in Schriftqualitätssicherungs-Workflows
  • Forschung zur Gestaltung von Texten und Versuche mit niedrigem Layout

Schriftartumwandlung

  • Umwandeln zwischen TTF, OTF und CFF mit FontConverter.convert()
  • Anpassung der Bezier-Kurventypen mit CurveAdapter.quad_to_cubic() und cubic_to_quads()
  • Umwandeln Sie Glyphen zwischen quadratisch und kubisch mit convert_path_quad_to_cubic() und convert_path_cubic_to_quad()

Typische Anwendungsfälle

  • Web-Schriftpipelines, die TTF-Master-Fonts für den Vertrieb in WOFF2 konvertieren.
  • Typ-Gießereiwerkzeug, das aus einer Quelle zu mehreren Formatzielen exportiert
  • Veraltete EOT-Konvertierung für rückwärtskompatible Web-Schriftstücken
  • Automatische Normalisierung von Schriftformaten in der kontinuierlichen Integration

Schriftuntersetzung

  • Untermenge von Schriftarten nach Unicode-Text mit FontSubsetter.subset_by_text()
  • Untergruppe durch Glyphen-ID-Liste mit FontSubsetter.subset_by_gids()
  • Erstellen Sie weboptimierte Teilmengen mit FontSubsetter.subset_for_web()
  • Benannte Voreinstellprofile mit FontSubsetter.subset_by_presets() und available_presets() anwenden
  • Analyse der Abdeckung des Teilbestandes mit FontSubsetter.analyze_coverage() und analyze_web_coverage()

Typische Anwendungsfälle

  • Verringerung der Nutzlastgröße von WOFF2 für Webseiten mit begrenzten Zeichenmengen
  • Erstellung von sprachspezifischen Schriftuntergruppen für i18n-Einführungsanwendungen
  • Schriftlizenzierungs-Workflows, die Teilmengen pro Seiten-Satz verteilen
  • Leistungsoptimierung für mobile Webanwendungen

Weboptimierung und Variable Font Previews

  • Stripe veraltete Tabellen und Mac-Namen mit FontCleaner.clean_for_web()
  • Überprüfen Sie die Kompatibilität der Variablen-Schriftstärke mit CompatibilityChecker.compare_fonts() und compare_variable_instances()
  • Generieren Sie animierte APNG-Achsenfegen mit AnimationPreviewBuilder.build_axis_sweep()
  • Erstellen Sie mehrstufige Animationspfade mit AnimationPreviewBuilder.build_path()

Typische Anwendungsfälle

  • Schriftmusterseiten und interaktive Achs-Explorer für Typgießereien
  • CI-Pipelines, die vor der Verteilung das variable Schriftverhalten überprüfen
  • Web-Performance-Pipelines, die nicht wesentliche binäre Tabellen abgeben
  • Miniaturbilder für die Vorführung von Schriftformen in Anwendungen zur Schriftarbeherrschung

Schriftdatei laden

Öffnen Sie eine TrueType- oder OpenTyme-Schriftart aus einem Dateipfad und lesen Sie die grundlegenden Metadaten.

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

Glyphen für einen Textstring

Lösen Sie alle Glyphen für einen Unicode-Code und überprüfen Sie deren Umrisspfade.

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)

Erstellen einer Animation für die Schrift- und Textrichtung

Erstellen Sie eine animierte APNG, die eine variable Schrift-Achse vom Anfang bis zum Endwert durchsucht.

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

Fassade für die Web-Einführung reinigen

Stripe alte Tabellen und Mac-Namen aufzeichnungen, um binäre Größe vor Webservice zu reduzieren.

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

Häufig gestellte Fragen

Was ist Aspose.Font FOSS für Python?

Es ist eine kostenlose, mit MIT-Lizenz lizenzierte reine Python-Bibliothek zum Laden, Inspektieren, Konvertieren und Unterstellen von Schriftarten in TTF-, OTF-CFF-, Typ-1-Wowff-, WOFF2- und EOT-Formaten. Keine native Abhängigkeiten sind erforderlich.

Wie installiere ich Aspose.Font FOSS für Python?

Führen Sie pip install "aspose-font>=1.0.0" aus. Es werden keine systemweiten Abhängigkeiten benötigt. Die Bibliothek funktioniert unter Windows, macOS und Linux mit Python 3.10 oder höher.

Welche Schriftformate werden unterstützt?

FontLoader.open() liest TTF, OTF und CFF, Typ 1, WOFF und WOff2, sowie EOT. FontConverter.convert() schreibt TFT, CFC und Woff2. Eot ist nur für den Lesen verfügbar.

Ist Font.to_bytes ((() verfügbar?

Nein. Font.to_bytes() ist nicht in der Basisklasse implementiert. Verwenden Sie FontConverter.convert(), um ein neues Font im gewünschten Format zu erzeugen.

Kann ich eine Schriftart für die Web-Versandung einstellen?

Ja. FontSubsetter.subset_by_text(font, text) gibt ein neues Font zurück, das nur die für den angegebenen Text erforderlichen Glyphen enthält. FontSubsetter.subset(font, codepoints) und subset_by_gids(font, gids) bieten feinere Kontrolle.

  

Support und Lernressourcen

 Deutsch