Pertanyaan yang Sering Diajukan
Lisensi & Sumber Terbuka
Apa model lisensi?
Aspose.Font FOSS untuk Python dirilis di bawah MIT License. Anda dapat menggunakan, menyalin, memodifikasi, menggabungkan, menerbitkan, mendistribusikan, memberikan sublisensi, atau menjual salinan perangkat lunak tanpa batasan. Satu-satunya persyaratan adalah bahwa pemberitahuan hak cipta dan teks lisensi disertakan dalam semua salinan atau bagian substansial dari perangkat lunak.
Apakah saya dapat menggunakannya dalam produk komersial?
Ya. Lisensi MIT mengizinkan penggunaan dalam produk tertutup‑sumber dan komersial. Tidak ada kewajiban royalti atau atribusi selain mempertahankan header hak cipta dalam salinan perpustakaan itu sendiri. Catatan: the CffFont class telah diperbarui (API_MODIFIED); kode yang ada mungkin memerlukan penyesuaian minor.
Apakah ada versi berbayar dengan lebih banyak fitur?Aspose.Font FOSS adalah edisi sumber terbuka. Edisi FOSS mencakup TTF, OTF, CFF,
Type 1, WOFF, WOFF2, dan EOT — yang mencakup mayoritas pekerjaan font di dunia nyata.
Instalasi & Persyaratan
Bagaimana cara menginstal Aspose.Font FOSS untuk Python?
Instal paket yang diperbarui (memerlukan 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 .Font API telah dimodifikasi (API_MODIFIED). Tidak ada ketergantungan native pada tingkat sistem yang diperlukan.
Versi Python apa yang didukung?
Python 3.10 dan selanjutnya. Perpustakaan hanya menggunakan fitur standar library, sehingga berfungsi pada CPython dan implementasi PyPy yang mendukung Python 3.10+.
Apakah ada ketergantungan native atau platform?
Tidak. Aspose.Font FOSS untuk Python tidak memiliki ekstensi C, tidak ada font sistem, dan tidak ada API platform. Itu berfungsi identik di Windows, macOS, dan Linux.
Dukungan Format
Format font apa yang dapat dibaca?
FontLoader.open() dapat memuat TTF, OTF, CFF (standalone), Type 1, WOFF, WOFF2, dan EOT.
from aspose_font import FontLoader
font = FontLoader.open("MyFont.ttf")Format apa yang dapat ditulis?
FontConverter.convert() mendukung konversi ke TTF, CFF, WOFF, dan WOFF2. Font output dapat disimpan ke byte atau aliran file.
Apakah dekompresi WOFF2 sudah terintegrasi?
Ya. Kompresi dan dekompresi Brotli WOFF2 diimplementasikan sepenuhnya di dalam perpustakaan. Tidak diperlukan paket brotli eksternal.
API Usage
Bagaimana cara memuat font dan memeriksa metadata-nya?
Gunakan FontLoader.open() yang mengembalikan sebuah instance Font. Untuk font TTF/OTF cast ke TtfFont untuk mengakses properti khusus 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)Bagaimana cara mengonversi TTF ke WOFF2?
Muat font dengan FontLoader.open(), lalu berikan ke FontConverter.convert() dengan menentukan FontType.WOFF2 sebagai target. Objek yang dikembalikan adalah sebuah instance Woff2Font yang siap diserialkan:
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)Bagaimana cara membuat subset font untuk pengiriman web?
Gunakan FontSubsetter.subset_by_text() untuk menghasilkan font baru yang hanya mencakup glyph yang diperlukan untuk merender string teks yang diberikan, mengurangi ukuran file untuk penyematan pada halaman web:
from aspose_font import FontLoader
from aspose_font import FontSubsetter
font = FontLoader.open("Roboto-Regular.ttf")
subset = FontSubsetter.subset_by_text(font, "Hello World")Bagaimana cara mengakses glyph individual?
Gunakan Font.glyph_accessor yang mengimplementasikan GlyphAccessor. Panggil get_glyph_by_unicode() dengan sebuah kode poin Unicode untuk mengambil objek glif yang sesuai dan memeriksa metrik atau konturnya:
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)Batasan yang Diketahui
Apakah Font.to_bytes() sudah diimplementasikan?
Kelas dasar abstrak Font.to_bytes(font_type) akan memunculkan NotImplementedError jika dipanggil secara langsung. Namun, semua kelas font konkret — TtfFont, CffFont, WoffFont, Woff2Font, EotFont, dan Type1Font — mengimplementasikan to_bytes() secara penuh. Muat sebuah font dengan FontLoader.open() dan panggil to_bytes() pada instance konkret yang dikembalikan. FontConverter.convert() juga dapat menghasilkan font baru dalam format target yang didukung.
Apakah semua tipe tabel di TtfTableSet terisi?
Hanya tabel umum (head, hhea, maxp, os2, name, post, cmap, loca, hmtx, kern) yang diekspose sebagai properti bernama pada TtfTableSet. Tabel lain dapat dibaca sebagai byte mentah melalui TtfFont.get_table_bytes(tag).
Apakah perpustakaan ini mendukung instansiasi font variabel?
Ya. TtfFont.instantiate(coordinates) menghasilkan TtfFont statis pada koordinat sumbu yang ditentukan. Gunakan TtfFont.is_variable dan TtfFont.axes untuk mendeteksi sumbu variasi terlebih dahulu.