Najczęściej zadawane pytania

Najczęściej zadawane pytania

Licencjonowanie i Open Source

Jaki jest model licencjonowania?

Aspose.Font FOSS dla Python jest wydany na MIT License. Możesz używać, kopiować, modyfikować, scalać, publikować, dystrybuować, udzielać sublicencji lub sprzedawać kopie oprogramowania bez ograniczeń. Jedynym wymogiem jest, aby włączono informację o prawach autorskich i tekst licencji we wszystkich kopiach lub istotnych częściach oprogramowania.

Czy mogę go używać w produktach komercyjnych?

Tak. Licencja MIT zezwala na użycie w produktach zamkniętego kodu i komercyjnych. Nie ma żadnych opłat licencyjnych ani obowiązku przypisania poza zachowaniem nagłówka praw autorskich w kopiach samej biblioteki. Uwaga: CffFont klasa została zaktualizowana (API_MODIFIED); istniejący kod może wymagać drobnych korekt.

Czy istnieje płatna wersja z większą liczbą funkcji?Aspose.Font FOSS jest edycją open-source. Edycja FOSS obejmuje TTF, OTF, CFF,

Type 1, WOFF, WOFF2 i EOT — co obejmuje większość rzeczywistej pracy z czcionkami.


Instalacja i wymagania

Jak zainstalować Aspose.Font FOSS dla Python?

Zainstaluj zaktualizowany pakiet (wymaga Python 3.10+):

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

Czcionka API została zmodyfikowana (API_MODIFIED). Nie są wymagane natywne zależności na poziomie systemu.

Jakie wersje Python są obsługiwane?

Python 3.10 i późniejsze. Biblioteka używa wyłącznie funkcji standardowej biblioteki, więc działa na CPython i implementacjach PyPy, które obsługują Python 3.10+.

Czy istnieją jakiekolwiek natywne lub platformowe zależności?

Nie. Aspose.Font FOSS dla Python nie ma rozszerzeń C, nie używa systemowych czcionek i nie korzysta z API platformy. Działa identycznie na Windows, macOS i Linux.


Obsługa formatów

Jakie formaty czcionek można odczytać?

FontLoader.open() może wczytywać TTF, OTF, CFF (samodzielny), Type 1, WOFF, WOFF2 i EOT.

from aspose_font import FontLoader

font = FontLoader.open("MyFont.ttf")

Jakie formaty można zapisywać?

FontConverter.convert() obsługuje konwersję do TTF, CFF, WOFF i WOFF2. Czcionka wyjściowa może być zapisana jako bajty lub do strumienia pliku.

Czy dekompresja WOFF2 jest wbudowana?

Tak. Kompresja i dekompresja WOFF2 Brotli są w pełni zaimplementowane w bibliotece. Nie jest wymagany żaden zewnętrzny pakiet brotli.


API Usage

Jak wczytać czcionkę i sprawdzić jej metadane?

Użyj FontLoader.open(), który zwraca instancję Font. Dla czcionek TTF/OTF rzutuj na TtfFont, aby uzyskać dostęp do właściwości specyficznych dla TTF:

from aspose_font import FontLoader
from aspose_font import TtfFont

ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
print(ttf_font.font_name)
print(ttf_font.num_glyphs)

Jak przekonwertować TTF na WOFF2?

Wczytaj czcionkę za pomocą FontLoader.open(), a następnie przekaż ją do FontConverter.convert(), określając FontType.WOFF2 jako docelowy format. Zwrócony obiekt jest instancją Woff2Font gotową do serializacji:

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

font = FontLoader.open("Roboto-Regular.ttf")
woff2 = FontConverter.convert(font, FontType.WOFF2)

Jak utworzyć podzbiór czcionki do dostarczenia w sieci?

Użyj FontSubsetter.subset_by_text(), aby wygenerować nową czcionkę, która zawiera tylko glify niezbędne do renderowania podanego ciągu tekstowego, zmniejszając rozmiar pliku przy osadzaniu na stronie internetowej:

from aspose_font import FontLoader
from aspose_font import FontSubsetter

font = FontLoader.open("Roboto-Regular.ttf")
subset = FontSubsetter.subset_by_text(font, "Hello World")

Jak uzyskać dostęp do pojedynczych glifów?

Użyj Font.glyph_accessor, który implementuje GlyphAccessor. Wywołaj get_glyph_by_unicode() z punktem kodowym Unicode, aby pobrać odpowiadający obiekt glifu i zbadać jego metryki lub kontur:

from aspose_font import FontLoader

font = FontLoader.open("Roboto-Regular.ttf")
glyph = font.glyph_accessor.get_glyph_by_unicode(0x0041)  # 'A'
print(glyph.glyph_id)

Znane ograniczenia

Czy Font.to_bytes() jest zaimplementowane?

Abstrakcyjna klasa bazowa Font.to_bytes(font_type) zgłasza NotImplementedError, jeśli zostanie wywołana bezpośrednio. Jednak wszystkie konkretne klasy czcionek — TtfFont, CffFont, WoffFont, Woff2Font, EotFont i Type1Font — w pełni implementują to_bytes(). Załaduj czcionkę za pomocą FontLoader.open() i wywołaj to_bytes() na zwróconym konkretnym obiekcie. FontConverter.convert() może również wygenerować nową czcionkę w dowolnym obsługiwanym formacie docelowym.

Czy wszystkie typy tabel w TtfTableSet są wypełnione?

Tylko wspólne tabele (head, hhea, maxp, os2, name, post, cmap, loca, hmtx, kern) są udostępniane jako nazwane właściwości w TtfTableSet. Inne tabele można odczytać jako surowe bajty za pomocą TtfFont.get_table_bytes(tag).

Czy biblioteka obsługuje tworzenie instancji czcionek zmiennych?

Tak. TtfFont.instantiate(coordinates) tworzy statyczny TtfFont w określonych współrzędnych osi. Najpierw użyj TtfFont.is_variable i TtfFont.axes, aby wykryć osie wariantów.

Zobacz także

 Polski