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

Aspose.Font FOSS for Python

Biblioteka open-source Python do ładowania, inspekcji, konwersji i podzbioru plików czcionek TTF, OTF, CFF, WOFF, WOFF2 i EOT.

Praca z czcionkami programowo w Pythonie

Aspose.Font FOSS dla Python to czysty zestaw narzędzi Python 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 systemowych ani natywnych zależności.

Biblioteka udostępnia czysty 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 bazową klasę 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 dla narzędzi do projektowania czcionek, potoków czcionek internetowych, silników renderowania glifów oraz dowolnej aplikacji Python, która potrzebuje odczytywać, przekształcać lub tworzyć pliki czcionek. Dla rodziny produktów korporacyjnych zobacz Aspose.Font — Enterprise Product Family.

Wykrywanie ładowania i formatowania czcionek

  • Wykorzystanie plików w postaci FontLoader.open() i FontLoader.load()
  • Automatycznie wykrywa format: TTF, OTF (przełączny), CFF (wspólny) WOFF, WOff2, EOT (pośredni), typ 1
  • Dostęp do metadanych czcionek za pośrednictwem klasy bazowej Font: font_name, font_family , font_style i num_glyphs
  • Czytaj mapy kodowania glifów z FontEncoding.unicode_to_gid() i get_all_codepoints()
  • Sprawdź metryki czcionek z FontMetrics: wznoszenie, spadek, przepaść linii, em-kwadra

Typowe przypadki zastosowania

  • Wykorzystanie metadanych w systemach weryfikacji czcionek i ekstrakcji danych meta
  • Kontrole CI/CD weryfikujące nazwę rodziny czcionek i liczbę znaków graficznych
  • Usługi wprowadzania czcionek internetowych, które akceptują wiele formatów wejściowych.
  • Narzędzia do projektowania czcionek, które wyświetlają metadane bez czasu działania na pulpicie.

Dostęp do znaków i kontrola ścieżki

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

Typowe przypadki zastosowania

  • Wykonanie kontroli pokrycia znaków dla wielojęzycznego odtwarzania tekstu.
  • Wykrywanie zarysów dla generowania ścieżki lub wektorów SVG
  • Wykonanie weryfikacji tabeli centralnej w przepływach pracy QA czcionek
  • Badania w zakresie kształtowania tekstu i eksperymenty z layoutami na niskim poziomie

Konwersja czcionek

  • Konwertuj między TTF, OTF i CFF za pomocą FontConverter.convert()
  • Dostosowanie typów krzywej Beziera z CurveAdapter.quad_to_cubic() i cubic_to_quads()
  • Konwertuj ścieżki glifów pomiędzy kwadratowymi i sześciennymi za pomocą convert_path_quad_to_cubic() i convert_path_cubic_to_quad()

Typowe przypadki zastosowania

  • Wybór fontów internetowych, które konwertują TTF do WOFF2 w celu dystrybucji.
  • Wykorzystanie narzędzi do odlewania, które eksportują z jednego źródła na cele o wielu formach.
  • Konwersja EOT w przypadku stawów czcionek internetowych zgodnych z poprzednimi wersjami
  • Automatyczna normalizacja formatu czcionki w ciągłej integracji

Podstawy czcionek

  • Podzbiór czcionek według tekstu Unicode z FontSubsetter.subset_by_text()
  • Podzbiór według listy identyfikatorów glifów z FontSubsetter.subset_by_gids()
  • Wyprodukować podzbiory optymalizowane w sieci za pomocą FontSubsetter.subset_for_web()
  • Zastosowanie nazwanych wstępnie ustawionych profili z FontSubsetter.subset_by_presets() i available_presets()
  • Analizuj pokrycie podzbioru za pomocą FontSubsetter.analyze_coverage() i analyze_web_coverage()

Typowe przypadki zastosowania

  • Zmniejszenie wielkości ładunku użytecznego WOFF2 dla stron internetowych o ograniczonych zestawach znaków.
  • Produkcja podzbiórów czcionek specyficznych dla języka wdrożeń i18n
  • Przepływy pracy licencjonowania czcionek, które rozprowadzają podzbiory na zestaw stron
  • Optymalizacja wydajności dla mobilnych aplikacji internetowych

Optymalizacja stron internetowych i przeglądy zmiennych czcionek

  • Zdejmij tabele i zapisy nazwisk Mac z FontCleaner.clean_for_web()
  • Sprawdź zgodność oś font zmiennej z CompatibilityChecker.compare_fonts() i compare_variable_instances()
  • Wygenerować animowane przechylanie osi APNG za pomocą AnimationPreviewBuilder.build_axis_sweep()
  • Zbuduj wieloetapowe ścieżki animacji za pomocą AnimationPreviewBuilder.build_path()

Typowe przypadki zastosowania

  • Strony z próbkami czcionek i interaktywne przeglądarki osi do odlewni typu
  • Rurociągi CI weryfikujące zachowanie zmiennych czcionek przed dystrybucją
  • Rurociągi wydajności sieci, które nie zawierają niezbędnych tabel binarnych
  • Miniatury przeglądu czcionek dla aplikacji do zarządzania czciorami

Wykonanie pliku czcionki

Otwórz czcionkę TrueType lub OpenTyme z ścieżki pliku i przeczytaj 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

Glifki do łańcucha tekstu

Rozwiązać wszystkie glyfy dla punktu kodu Unicode i sprawdzić ich ścieżki zarysów.

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)

Wygenerowanie zmiennej animacji przebierania osi czcionki

Stwórz animowaną APNG, która prześwietla oś czcionki zmiennej 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")

Wyczyść czcionkę do wdrożenia na stronach internetowych

Zdejmij stare tabele i zapisy nazw Mac, aby zmniejszyć rozmiar binary przed serwisem internetowym.

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

Co to jest Aspose.Font FOSS dla Pythona?

Jest to darmowa, licencjonowana przez MIT biblioteka czystej Pythona do ładowania, inspekcji, konwersji i subsetingu czcionek w formatach TTF, OTF , CFF, Typ 1, WOFF , WOff2 i EOT. Nie są wymagane natywne zależności .

Jak zainstalować Aspose.Font FOSS dla Pythona?

pip install "aspose-font>=1.0.0" Nie jest potrzebna żadna zależność na poziomie systemu. Biblioteka działa w systemie Windows, macOS i Linux z Pythonem 3.10 lub nowszym.

Jakie formaty czcionek są obsługiwane?

FontLoader.open() czyta TTF, OTF , CFF, typ 1, WOFF , WOff2 i EOT. FontConverter.convert() pisze TFT, CFC, WOF i WOW2. Eot jest tylko do odczytu.

Czy Font.to_bytes() jest dostępny?

Nie. Font.to_bytes() nie jest wdrożony do klasy podstawowej. Użyj FontConverter.convert(), aby wyprodukować nowy Font w żądanym formacie.

Czy mogę ustawić czcionkę do dostarczania w sieci?

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

  

Zasoby Wsparcia i Nauki

 Polski