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

Aspose.Font FOSS untuk Python

Perpustakaan Python sumber terbuka untuk memuat, memeriksa, mengonversi, dan membuat subset file font TTF, OTF, CFF, WOFF, WOFF2, dan EOT.

Bekerja dengan Font secara Programatis di Python

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.

Pemuat Font dan Deteksi Format

  • Muat font dari jalur file atau byte mentah dengan FontLoader.open() dan FontLoader.load()
  • Deteksi format secara otomatis: TTF, OTF, CFF, WOFF, WOFF2, EOT, Type 1
  • Akses metadata font melalui kelas dasar Font: font_name, font_family, font_style, num_glyphs
  • Baca peta pengkodean glyph dengan FontEncoding.unicode_to_gid() dan get_all_codepoints()
  • Periksa metrik font dengan FontMetrics: ascent, descent, line gap, em-square

Kasus Penggunaan Umum

  • Pipa validasi font dan ekstraksi metadata
  • Pemeriksaan CI/CD yang memverifikasi nama keluarga font dan jumlah glif
  • Layanan ingesti font web yang menerima banyak format input
  • Alat desain font yang menampilkan metadata tanpa runtime desktop

Akses Glif dan Inspeksi Jalur

  • Ambil glyph berdasarkan ID atau Unicode dengan GlyphAccessor.get_glyph_by_id() dan get_glyph_by_unicode()
  • Menyelesaikan semua glyph untuk sebuah string dengan GlyphAccessor.get_glyphs_for_text()
  • Periksa jalur outline glyph sebagai perintah yang diketik: MoveTo, LineTo, QuadraticTo, CurveTo, ClosePath
  • Akses kotak pembatas glif, lebar maju, dan bearing sisi dari properti Glyph
  • Baca pasangan kerning dari KernPair untuk perhitungan tata letak teks yang akurat

Kasus Penggunaan Umum

  • Pemeriksaan cakupan glif untuk rendering teks multibahasa
  • Ekstraksi outline untuk path SVG atau pembuatan vektor
  • Validasi tabel kerning dalam alur kerja QA font
  • Penelitian pembentukan teks dan eksperimen tata letak tingkat rendah

Konversi Font

  • Konversi antara TTF, OTF, CFF, WOFF, WOFF2, EOT, dan Type 1 dengan FontConverter.convert()
  • Sesuaikan tipe kurva Bezier dengan CurveAdapter.quad_to_cubic() dan cubic_to_quads()
  • Konversi jalur glif antara kuadratik dan kubik dengan convert_path_quad_to_cubic() dan convert_path_cubic_to_quad()

Kasus Penggunaan Umum

  • Pipeline font web yang mengonversi font master TTF ke WOFF2 untuk distribusi
  • Alat foundry tipe yang mengekspor ke beberapa target format dari satu sumber
  • Konversi EOT legacy untuk tumpukan font web yang kompatibel mundur
  • Normalisasi format font otomatis dalam integrasi berkelanjutan

Subsetting Font

  • Subset font berdasarkan teks Unicode dengan FontSubsetter.subset_by_text()
  • Subset berdasarkan daftar ID glif dengan FontSubsetter.subset_by_gids()
  • Buat subset yang dioptimalkan untuk web dengan FontSubsetter.subset_for_web()
  • Terapkan profil preset bernama dengan FontSubsetter.subset_by_presets() dan available_presets()
  • Analisis cakupan subset dengan FontSubsetter.analyze_coverage() dan analyze_web_coverage()

Kasus Penggunaan Umum

  • Mengurangi ukuran payload WOFF2 untuk halaman web dengan set karakter terbatas
  • Membuat subset font khusus bahasa untuk penyebaran i18n
  • Alur kerja lisensi font yang mendistribusikan subset per set halaman
  • Optimasi kinerja untuk aplikasi web seluler

Optimasi Web dan Pratinjau Font Variabel

  • Hapus tabel warisan dan catatan nama Mac dengan FontCleaner.clean_for_web()
  • Periksa kompatibilitas sumbu font variabel dengan CompatibilityChecker.compare_fonts() dan compare_variable_instances()
  • Hasilkan sapuan sumbu APNG animasi dengan AnimationPreviewBuilder.build_axis_sweep()
  • Bangun jalur animasi multi‑langkah dengan AnimationPreviewBuilder.build_path()

Kasus Penggunaan Umum

  • Halaman spesimen font dan penjelajah sumbu interaktif untuk foundry tipografi
  • Pipeline CI yang memverifikasi perilaku font variabel sebelum distribusi
  • Pipeline kinerja web yang menghapus tabel biner non‑esensial
  • Thumbnail pratinjau font untuk aplikasi manajemen font

Muat Berkas Font

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

Akses Glif untuk String Teks

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 Animasi Penyapuan Sumbu Font Variabel

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")

Bersihkan Font untuk Penyebaran Web

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

Pertanyaan yang Sering Diajukan

Apa itu Aspose.Font FOSS untuk Python?

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.

Bagaimana cara menginstal Aspose.Font FOSS untuk Python?

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.

Format font apa yang didukung?

FontLoader.open() membaca TTF, OTF, CFF, Type 1, WOFF, WOFF2, dan EOT. FontConverter.convert() menulis TTF, CFF, WOFF, dan WOFF2. EOT hanya dapat dibaca.

Apakah Font.to_bytes() tersedia?

Tidak. Font.to_bytes() tidak diimplementasikan dalam kelas dasar. Gunakan FontConverter.convert() untuk menghasilkan Font baru dalam format yang diinginkan.

Bisakah saya melakukan subset pada font untuk pengiriman web?

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.

  

Sumber Daya Dukungan dan Pembelajaran

 Bahasa Indonesia