Rozwiązywanie problemów Aspose.Font FOSS for Python

Rozwiązywanie problemów Aspose.Font FOSS for Python

Błędy importu

ModuleNotFoundError: No module named 'aspose_font'

Pakiet nie jest zainstalowany w aktywnym środowisku Python. Zainstaluj go:

git clone https://github.com/aspose-font-foss/Aspose.Font-FOSS-for-Python.git
cd Aspose.Font-FOSS-for-Python
pip install -e .

Upewnij się, że instalujesz do właściwego środowiska wirtualnego, jeśli go używasz.

ImportError: cannot import name 'FontType' from 'aspose_font'

FontType jest eksportowane z pakietu najwyższego poziomu aspose_font. Użyj:

from aspose_font import FontType  # correct

Jeśli widzisz ten błąd, upewnij się, że masz aspose-font>=1.0.0 zainstalowane w aktywnym środowisku.


Błędy ładowania czcionek

FontLoadException podczas wywoływania FontLoader.open()

Możliwe przyczyny:

  • Ścieżka do pliku jest nieprawidłowa lub plik nie istnieje
  • Plik jest uszkodzony lub ma niestandardowy nagłówek
  • Przekazałeś obiekt bytes, który nie jest prawidłową czcionką

Sprawdź, czy plik istnieje przed załadowaniem:

import os
from aspose_font import FontLoader

path = "MyFont.ttf"
if not os.path.exists(path):
    raise FileNotFoundError(path)
font = FontLoader.open(path)

Problemy ze znakiem backslash w ścieżkach Windows

Używaj surowych łańcuchów lub ukośników w systemie Windows:

font = FontLoader.open(r"C:\Fonts\MyFont.ttf")
# or
font = FontLoader.open("C:/Fonts/MyFont.ttf")

API Błędy

AttributeError: 'Font' object has no attribute 'ttf_tables'

ttf_tables jest właściwością w TtfFont, a nie w bazowej klasie Font. Użyj adnotacji typu:

from aspose_font import TtfFont
ttf_font: TtfFont = FontLoader.open("MyFont.ttf")
tables = ttf_font.ttf_tables

NotImplementedError z Font.to_bytes()

Font.to_bytes(font_type) podnosi NotImplementedError tylko wtedy, gdy jest wywoływany na abstrakcyjnej klasie bazowej. Wszystkie konkretne klasy czcionek (TtfFont, CffFont, WoffFont, Woff2Font itp.) implementują to_bytes() i zwracają bajty czcionki. Jeśli wywołasz FontLoader.open(), otrzymasz konkretną instancję — wywołaj to_bytes() bezpośrednio lub użyj FontConverter.convert(), aby najpierw zmienić format:

from aspose_font.converter import FontConverter  # internal API — may change between releases
from aspose_font import FontType

woff2 = FontConverter.convert(font, FontType.WOFF2)

Zobacz także

 Polski