Často kladené otázky

Často kladené otázky

Licencování a open source

Jaký je licenční model?

Aspose.Font FOSS pro Python je vydáno pod MIT License. Můžete používat, kopírovat, upravovat, slučovat, publikovat, distribuovat, poskytovat sublicence nebo prodávat kopie softwaru bez omezení. Jedinou podmínkou je, aby oznámení o autorských právech a text licence byly zahrnuty ve všech kopiích nebo podstatných částech softwaru.

Mohu jej použít v komerčních produktech?

Ano. Licence MIT povoluje použití v uzavřených a komerčních produktech. Neexistují žádné poplatky za licence ani povinnosti uvádění autorství nad rámec zachování hlavičky autorských práv ve vašich kopiích samotné knihovny. Poznámka: CffFont třída byla aktualizována (API_MODIFIED); existující kód může vyžadovat drobné úpravy.

Existuje placená verze s více funkcemi?Aspose.Font FOSS je open-source edice. Edice FOSS zahrnuje TTF, OTF, CFF,

Type 1, WOFF, WOFF2 a EOT — což pokrývá většinu reálné práce s fonty.


Instalace a požadavky

Jak nainstaluji Aspose.Font FOSS pro Python?

Nainstalujte aktualizovaný balíček (vyžaduje 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 .

Písmo API bylo upraveno (API_MODIFIED). Není vyžadována žádná nativní systémová závislost.

Jaké verze Python jsou podporovány?

Python 3.10 a novější. Knihovna používá pouze funkce standardní knihovny, takže funguje na CPython a PyPy implementacích, které podporují Python 3.10+.

Existují nějaké nativní nebo platformové závislosti?

Č. Aspose.Font FOSS pro Python nemá žádná rozšíření v C, žádná systémová písma ani platformové API. Funguje identicky ve Windows, macOS a Linuxu.


Podpora formátů

Jaké formáty písem lze číst?

FontLoader.open() může načíst TTF, OTF, CFF (samostatně), Type 1, WOFF, WOFF2 a EOT.

from aspose_font import FontLoader

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

Jaké formáty lze zapisovat?

FontConverter.convert() podporuje konverzi na TTF, CFF, WOFF a WOFF2. Výstupní písmo lze uložit do bajtů nebo do souborového proudu.

Je dekomprese WOFF2 vestavěná?

Ano. Komprese a dekomprese WOFF2 pomocí Brotli jsou implementovány zcela v knihovně. Není vyžadován žádný externí balíček brotli.


API Usage

Jak načtu písmo a prozkoumám jeho metadata?

Použijte FontLoader.open(), který vrací instanci Font. Pro písma TTF/OTF přetypujte na TtfFont, abyste získali přístup k TTF-specifickým vlastnostem:

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 převést TTF na WOFF2?

Načtěte písmo pomocí FontLoader.open() a poté jej předávejte FontConverter.convert() s určením FontType.WOFF2 jako cíle. Vrácený objekt je instance Woff2Font připravená k serializaci:

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 vytvořit podmnožinu písma pro webové doručení?

Použijte FontSubsetter.subset_by_text() k vytvoření nového písma, které obsahuje pouze glyfy potřebné k vykreslení zadaného textového řetězce, čímž se sníží velikost souboru pro vložení na webovou stránku:

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 získat přístup k jednotlivým glyfům?

Použijte Font.glyph_accessor, který implementuje GlyphAccessor. Zavolejte get_glyph_by_unicode() s Unicode kódem znaku, abyste získali odpovídající objekt glifu a prozkoumali jeho metriky nebo obrys:

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)

Známá omezení

Je implementována metoda Font.to_bytes()?

Abstraktní základní třída Font.to_bytes(font_type) vyvolá NotImplementedError, pokud je volána přímo. Však všechny konkrétní třídy fontů — TtfFont, CffFont, WoffFont, Woff2Font, EotFont a Type1Font — implementují to_bytes() plně. Načtěte font pomocí FontLoader.open() a zavolejte to_bytes() na vrácené konkrétní instanci. FontConverter.convert() může také vytvořit nový font v libovolném podporovaném cílovém formátu.

Jsou všechny typy tabulek v TtfTableSet vyplněny?

Pouze běžné tabulky (head, hhea, maxp, os2, name, post, cmap, loca, hmtx, kern) jsou vystaveny jako pojmenované vlastnosti na TtfTableSet. Ostatní tabulky lze číst jako surová bajty pomocí TtfFont.get_table_bytes(tag).

Podporuje knihovna instanciaci variabilních fontů?

Ano. TtfFont.instantiate(coordinates) vytváří statický TtfFont na zadaných souřadnicích os. Nejprve použijte TtfFont.is_variable a TtfFont.axes k detekci os variací.

Viz také:

 Čeština