Aspose.Font FOSS untuk Python adalah toolkit pure-Python untuk memuat, memeriksa, mengonversi, membuat subset, dan meninjau font di seluruh format TrueType, OpenType, CFF, Type 1, WOFF, WOFF2, dan EOT. Perpustakaan ini berjalan pada Python 3.10 atau lebih baru dan tidak memerlukan perpustakaan font OS eksternal atau dependensi native.
Pustaka ini menyediakan API yang bersih untuk memuat font melalui FontLoader, mengakses glyph melalui GlyphAccessor, mengonversi format melalui FontConverter, mengoptimalkan web melalui FontCleaner, melakukan subsetting yang sadar teks melalui FontSubsetter, dan animasi font variabel melalui AnimationPreviewBuilder. Metadata font seperti nama, keluarga, gaya, jumlah glyph, enkoding, dan metrik dapat diakses melalui kelas dasar Font tanpa harus mem‑parsing tabel biner secara manual.
Aspose.Font FOSS berlisensi MIT dan dapat diinstal dari PyPI dengan satu perintah pip install. Ini cocok untuk alat desain font, pipeline font web, mesin rendering glyph, dan aplikasi Python apa pun yang perlu membaca, mengubah, atau menghasilkan file font. Untuk keluarga produk enterprise, lihat Aspose.Font — Enterprise Product Family.
FontLoader.open() dan FontLoader.load()Font: font_name, font_family, font_style, num_glyphsFontEncoding.unicode_to_gid() dan get_all_codepoints()FontMetrics: ascent, descent, line gap, em-squareGlyphAccessor.get_glyph_by_id() dan get_glyph_by_unicode()GlyphAccessor.get_glyphs_for_text()MoveTo, LineTo, QuadraticTo, CurveTo, ClosePathGlyphKernPair untuk perhitungan tata letak teks yang akuratFontConverter.convert()CurveAdapter.quad_to_cubic() dan cubic_to_quads()convert_path_quad_to_cubic() dan convert_path_cubic_to_quad()FontSubsetter.subset_by_text()FontSubsetter.subset_by_gids()FontSubsetter.subset_for_web()FontSubsetter.subset_by_presets() dan available_presets()FontSubsetter.analyze_coverage() dan analyze_web_coverage()FontCleaner.clean_for_web()CompatibilityChecker.compare_fonts() dan compare_variable_instances()AnimationPreviewBuilder.build_axis_sweep()AnimationPreviewBuilder.build_path()Buka font TrueType atau OpenType dari jalur file dan baca metadata dasarnya.
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
Temukan semua glif untuk sebuah titik kode Unicode dan periksa jalur kontur mereka.
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)
Buat APNG animasi yang menggerakkan sumbu font variabel dari nilai awal ke nilai akhir.
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")
Hapus tabel warisan dan catatan nama Mac untuk mengurangi ukuran biner sebelum penyajian web.
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
Ini adalah pustaka pure-Python yang gratis, berlisensi MIT, untuk memuat, memeriksa, mengonversi, dan melakukan subset pada font dalam format TTF, OTF, CFF, Type 1, WOFF, WOFF2, dan EOT. Tidak diperlukan dependensi native.
Jalankan pip install "aspose-font>=1.0.0". Tidak diperlukan dependensi tingkat sistem. Pustaka ini bekerja di Windows, macOS, dan Linux dengan Python 3.10 atau lebih baru.
FontLoader.open() membaca TTF, OTF, CFF, Type 1, WOFF, WOFF2, dan EOT. FontConverter.convert() menulis TTF, CFF, WOFF, dan WOFF2. EOT hanya dapat dibaca.
Tidak. Font.to_bytes() tidak diimplementasikan dalam kelas dasar. Gunakan FontConverter.convert() untuk menghasilkan Font baru dalam format yang diinginkan.
Ya. FontSubsetter.subset_by_text(font, text) mengembalikan Font baru yang hanya berisi glif yang diperlukan untuk teks yang diberikan. FontSubsetter.subset(font, codepoints) dan subset_by_gids(font, gids) memberikan kontrol yang lebih halus.