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

Aspose.Font FOSS für Python

Open-Source Python Bibliothek zum Laden, Untersuchen, Konvertieren und Erstellen von Teilmengen von TTF-, OTF-, CFF-, WOFF-, WOFF2- und EOT-Schriftdateien.

Arbeiten Sie programmgesteuert mit Schriften in Python

Aspose.Font FOSS für Python ist ein reines Python-Toolkit zum Laden, Inspizieren, Konvertieren, Erstellen von Teilmengen 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 nativen Abhängigkeiten.

Die Bibliothek stellt eine saubere API für das Laden von Schriftarten über FontLoader, den Zugriff auf Glyphen über GlyphAccessor, die Formatkonvertierung über FontConverter, die Weboptimierung über FontCleaner, das textbewusste Subsetting über FontSubsetter und die Animation variabler Schriften über AnimationPreviewBuilder bereit. Schriftmetadaten wie Name, Familie, Stil, Glyphenanzahl, 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 Font‑Design‑Tools, Webfont‑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.

Schriftenladen und Format-Erkennung

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

Typische Anwendungsfälle

  • Schriftvalidierung und Metadatenextraktions-Pipelines
  • CI/CD-Checks, die den Schriftfamiliennamen und die Glyphenzahl überprüfen
  • Web‑Font‑Ingestionsdienste, die mehrere Eingabeformate akzeptieren
  • Font-Design-Tools, die Metadaten ohne Desktop-Laufzeit anzeigen

Glyphen-Zugriff und Pfad-Inspektion

  • Glyphen nach ID oder Unicode mit GlyphAccessor.get_glyph_by_id() und get_glyph_by_unicode() abrufen
  • Lösen Sie alle Glyphen für eine Zeichenkette mit GlyphAccessor.get_glyphs_for_text()
  • Untersuchen Sie Glyph‑Umrisspfade als eingegebene Befehle: MoveTo, LineTo, QuadraticTo, CurveTo, ClosePath
  • Greifen Sie auf die Glyphenbegrenzungsbox, die Vorwärtsbreite und die Seitenabstände aus den Glyph-Eigenschaften zu.
  • Lese Kerning‑Paare aus KernPair für genaue Text‑Layout‑Berechnungen

Typische Anwendungsfälle

  • Glyph‑Abdeckungsprüfungen für mehrsprachige Textdarstellung
  • Umrissextraktion für SVG-Pfad oder Vektorgenerierung
  • Kerning-Tabellenvalidierung in Font‑QA‑Workflows
  • Forschung zur Textgestaltung und Low-Level-Layout-Experimentierung

Schriftkonvertierung

  • Konvertieren Sie zwischen TTF, OTF, CFF, WOFF, WOFF2, EOT und Type 1 mit FontConverter.convert()
  • Passen Sie Bezier‑Kurventypen mit CurveAdapter.quad_to_cubic() und cubic_to_quads() an.
  • Konvertieren Sie Glyph‑Pfade zwischen quadratisch und kubisch mit convert_path_quad_to_cubic() und convert_path_cubic_to_quad()

Typische Anwendungsfälle

  • Web‑Font‑Pipelines, die TTF‑Master‑Schriften in WOFF2 für die Verteilung konvertieren
  • Werkzeug für Schriftgießereien, das aus einer Quelle in mehrere Formatziele exportiert
  • Legacy‑EOT‑Konvertierung für rückwärtskompatible Webfont‑Stacks
  • Automatisierte Schriftformatnormalisierung in der kontinuierlichen Integration

Schrift-Subsetting

  • Schriften nach Unicode‑Text unterteilen mit FontSubsetter.subset_by_text()
  • Subset nach Glyph-ID-Liste mit FontSubsetter.subset_by_gids()
  • Erstellen Sie weboptimierte Teilmengen mit FontSubsetter.subset_for_web()
  • Wenden Sie benannte Preset‑Profile mit FontSubsetter.subset_by_presets() und available_presets() an
  • Analysiere die Teilmengenabdeckung mit FontSubsetter.analyze_coverage() und analyze_web_coverage()

Typische Anwendungsfälle

  • Reduzierung der WOFF2-Payload-Größe für Webseiten mit begrenzten Zeichensätzen
  • Erzeugen sprachspezifischer Schriftart-Subset für i18n-Bereitstellungen
  • Schriftlizenzierungs‑Workflows, die Teilmengen pro Seitensatz verteilen
  • Leistungsoptimierung für mobile Webanwendungen

Web-Optimierung und Vorschauen für variable Fonts

  • Entfernen Sie veraltete Tabellen und Mac‑Nameeinträge mit FontCleaner.clean_for_web()
  • Überprüfen Sie die Kompatibilität der variablen Schriftachsen mit CompatibilityChecker.compare_fonts() und compare_variable_instances()
  • Erzeugen Sie animierte APNG‑Achsen‑Sweeps mit AnimationPreviewBuilder.build_axis_sweep()
  • Erstellen Sie mehrstufige Animationspfade mit AnimationPreviewBuilder.build_path()

Typische Anwendungsfälle

  • Schriftmusterseiten und interaktive Achsen-Explorer für Schriftgießereien
  • CI-Pipelines, die das Verhalten von variablen Schriftarten vor der Verteilung überprüfen.
  • Web‑Performance‑Pipelines, die nicht wesentliche Binärtabellen verwerfen
  • Schriftvorschau‑Miniaturansichten für Schriftverwaltungsanwendungen

Lade eine Font-Datei

Öffnen Sie eine TrueType‑ oder OpenType‑Schriftart von einem Dateipfad und lesen Sie deren grundlegende 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

Greife auf Glyphen für eine Textzeichenfolge zu

Lösen Sie alle Glyphen für einen Unicode‑Codepunkt auf und untersuchen Sie deren Konturpfade.

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)

Erstelle eine Variable Font Axis Sweep Animation

Erstellen Sie ein animiertes APNG, das eine Variable‑Font‑Achse vom Start‑ bis zum Endwert durchläuft.

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

Bereinige eine Font für Web-Deployment

Entfernen Sie Legacy-Tabellen und Mac-Nameeinträge, um die Binärgröße vor dem Web-Serving 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-lizenzierte pure-Python-Bibliothek zum Laden, Inspizieren, Konvertieren und Subsetten von Schriftarten in den Formaten TTF, OTF, CFF, Type 1, WOFF, WOFF2 und EOT. Es werden keine nativen Abhängigkeiten benötigt.

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

Führen Sie pip install "aspose-font>=1.0.0" aus. Systemabhängigkeiten sind nicht erforderlich. 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, CFF, Type 1, WOFF, WOFF2 und EOT. FontConverter.convert() schreibt TTF, CFF, WOFF und WOFF2. EOT ist schreibgeschützt.

Ist Font.to_bytes() verfügbar?

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

Kann ich eine Schriftart für die Webauslieferung subsetten?

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