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

Aspose.Font FOSS dla Python

Biblioteka Python typu open-source do ładowania, przeglądania, konwertowania i podzestawiania plików czcionek TTF, OTF, CFF, WOFF, WOFF2 i EOT.

Pracuj z czcionkami programistycznie w Python

Aspose.Font FOSS dla Python jest czystym Python zestawem narzędzi do ładowania, przeglądania, konwertowania, podzbioru i podglądu czcionek w formatach TrueType, OpenType, CFF, Type 1, WOFF, WOFF2 i EOT. Biblioteka działa na Python 3.10 lub nowszym i nie wymaga zewnętrznych bibliotek czcionek systemu operacyjnego ani natywnych zależności.

Biblioteka udostępnia czyste API do ładowania czcionek za pomocą FontLoader, dostępu do glifów za pomocą GlyphAccessor, konwersji formatów za pomocą FontConverter, optymalizacji sieciowej za pomocą FontCleaner, podzbioru świadomego tekstu za pomocą FontSubsetter oraz animacji zmiennych czcionek za pomocą AnimationPreviewBuilder. Metadane czcionki, takie jak nazwa, rodzina, styl, liczba glifów, kodowanie i metryki, są dostępne poprzez klasę bazową Font bez ręcznego parsowania tabel binarnych.

Aspose.Font FOSS jest licencjonowany na licencji MIT i można go zainstalować z PyPI za pomocą jednego polecenia pip install. Jest odpowiedni do narzędzi projektowania czcionek, potoków czcionek internetowych, silników renderowania glifów oraz dowolnej aplikacji Python, która musi odczytywać, przekształcać lub tworzyć pliki czcionek. Aby zobaczyć rodzinę produktów enterprise, zobacz Aspose.Font — Enterprise Product Family.

Ładowanie czcionek i wykrywanie formatu

  • Ładuj czcionki z ścieżek plików lub surowych bajtów przy użyciu FontLoader.open() i FontLoader.load()
  • Automatycznie wykryj format: TTF, OTF, CFF, WOFF, WOFF2, EOT, Type 1
  • Uzyskaj dostęp do metadanych czcionki za pośrednictwem klasy bazowej Font: font_name, font_family, font_style, num_glyphs
  • Odczytaj mapy kodowania glifów przy użyciu FontEncoding.unicode_to_gid() i get_all_codepoints()
  • Sprawdź metryki czcionki za pomocą FontMetrics: wzniesienie, opad, odstęp linii, kwadrat em

Typowe Przypadki Użycia

  • Potoki walidacji czcionek i ekstrakcji metadanych
  • Kontrole CI/CD weryfikujące nazwę rodziny czcionki i liczbę glifów
  • Usługi pobierania czcionek internetowych akceptujące wiele formatów wejściowych
  • Narzędzia do projektowania czcionek wyświetlające metadane bez środowiska uruchomieniowego na pulpicie

Dostęp do glifów i inspekcja ścieżek

  • Pobierz glify według identyfikatora lub Unicode przy użyciu GlyphAccessor.get_glyph_by_id() i get_glyph_by_unicode()
  • Rozwiąż wszystkie glify dla ciągu znaków z GlyphAccessor.get_glyphs_for_text()
  • Sprawdź ścieżki konturów glifów jako wpisane polecenia: MoveTo, LineTo, QuadraticTo, CurveTo, ClosePath
  • Uzyskaj dostęp do pola ograniczającego glifu, szerokości kroku i odległości bocznych z właściwości Glyph properties
  • Odczytaj pary kerningu z KernPair w celu dokładnych obliczeń układu tekstu

Typowe przypadki użycia

  • Sprawdzanie pokrycia glifów dla renderowania tekstu wielojęzycznego
  • Ekstrakcja konturu dla ścieżki SVG lub generowania wektorów
  • Walidacja tabeli kerningu w przepływach QA czcionek
  • Badania nad kształtowaniem tekstu i eksperymenty niskopoziomowego układu

Konwersja czcionek

  • Konwertuj pomiędzy TTF, OTF, CFF, WOFF, WOFF2, EOT i Type 1 przy użyciu FontConverter.convert()
  • Dostosuj typy krzywych Beziera przy użyciu CurveAdapter.quad_to_cubic() i cubic_to_quads()
  • Konwertuj ścieżki glifów między kwadratowymi a sześciennymi przy użyciu convert_path_quad_to_cubic() i convert_path_cubic_to_quad()

Typowe przypadki użycia

  • Potoki czcionek internetowych, które konwertują główne czcionki TTF do WOFF2 w celu dystrybucji
  • Narzędzia wytwórni czcionek, które eksportują do wielu formatów docelowych z jednego źródła
  • Konwersja starszych plików EOT dla wstecznie kompatybilnych stosów czcionek internetowych
  • Zautomatyzowana normalizacja formatu czcionki w ciągłej integracji

Podzestawianie czcionek

  • Utwórz podzbiory czcionek na podstawie tekstu Unicode z FontSubsetter.subset_by_text()
  • Podzbiór według listy identyfikatorów glifów z FontSubsetter.subset_by_gids()
  • Twórz podzbiory zoptymalizowane pod kątem sieci przy użyciu FontSubsetter.subset_for_web()
  • Zastosuj nazwane profile presetów przy użyciu FontSubsetter.subset_by_presets() i available_presets()
  • Analizuj pokrycie podzbioru przy użyciu FontSubsetter.analyze_coverage() i analyze_web_coverage()

Typowe przypadki użycia

  • Zmniejszanie rozmiaru ładunku WOFF2 dla stron internetowych z ograniczonym zestawem znaków
  • Tworzenie podzbiorów czcionek specyficznych dla języka w wdrożeniach i18n
  • Procesy licencjonowania czcionek, które dystrybuują podzbiory per-page-set
  • Optymalizacja wydajności aplikacji internetowych na urządzenia mobilne

Optymalizacja Sieciowa i Podglądy Zmiennych Czcionek

  • Usuń przestarzałe tabele i rekordy nazw Mac przy użyciu FontCleaner.clean_for_web()
  • Sprawdź zgodność osi czcionki zmiennej z CompatibilityChecker.compare_fonts() i compare_variable_instances()
  • Generuj animowane przesiania osi w formacie APNG przy użyciu AnimationPreviewBuilder.build_axis_sweep()
  • Twórz wieloetapowe ścieżki animacji przy użyciu AnimationPreviewBuilder.build_path()

Typowe przypadki użycia

  • Strony z próbkami czcionek i interaktywne eksploratory osi dla zakładów typograficznych
  • Potoki CI, które weryfikują zachowanie zmiennych czcionek przed dystrybucją
  • Potoki wydajności sieci, które pomijają nieistotne tabele binarne
  • Miniaturki podglądu czcionek dla aplikacji do zarządzania czcionkami

Załaduj plik czcionki

Otwórz czcionkę TrueType lub OpenType z ścieżki pliku i odczytaj jej podstawowe metadane.

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

Dostęp do glifów dla ciągu tekstowego

Rozwiąż wszystkie glify dla punktu kodowego Unicode i sprawdź ich ścieżki konturu.

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)

Wygeneruj animację przeglądania osi zmiennej czcionki

Utwórz animowany APNG, który przemieszcza oś zmiennej czcionki od wartości początkowej do końcowej.

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

Oczyść czcionkę pod kątem wdrożenia w sieci

Usuń przestarzałe tabele i rekordy nazw Mac, aby zmniejszyć rozmiar pliku binarnego przed serwowaniem w sieci.

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

Najczęściej Zadawane Pytania

Czym jest Aspose.Font FOSS dla Python?

Jest to darmowa, na licencji MIT czysta biblioteka Python do ładowania, przeglądania, konwertowania i podzestawowania czcionek w formatach TTF, OTF, CFF, Type 1, WOFF, WOFF2 i EOT. Nie wymaga natywnych zależności.

Jak zainstalować Aspose.Font FOSS dla Python?

Uruchom pip install "aspose-font>=1.0.0". Nie są potrzebne zależności na poziomie systemu. Biblioteka działa na Windows, macOS i Linux z Python 3.10 lub nowszym.

Jakie formaty czcionek są obsługiwane?

FontLoader.open() odczytuje TTF, OTF, CFF, Type 1, WOFF, WOFF2 i EOT. FontConverter.convert() zapisuje TTF, CFF, WOFF i WOFF2. EOT jest tylko do odczytu.

Czy metoda Font.to_bytes() jest dostępna?

Nie. Font.to_bytes() nie jest zaimplementowane w klasie bazowej. Użyj FontConverter.convert(), aby utworzyć nowy Font w żądanym formacie.

Czy mogę wyodrębnić podzbiór czcionki do dostarczenia w sieci?

Tak. FontSubsetter.subset_by_text(font, text) zwraca nowy Font zawierający tylko glify wymagane dla podanego tekstu. FontSubsetter.subset(font, codepoints) i subset_by_gids(font, gids) zapewniają bardziej precyzyjną kontrolę.

  

Zasoby Wsparcia i Nauki

 Polski