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

Aspose.Font FOSS for 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, melakukan subsetting, 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.

Perpustakaan ini menyediakan API yang bersih untuk pemuatan font melalui FontLoader, akses glyph melalui GlyphAccessor, konversi format melalui FontConverter, optimasi web melalui FontCleaner, 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.

Pemuatan Font dan Deteksi Format

  • Load font dari jalur file atau byte mentah dengan FontLoader.open() dan FontLoader.load()
  • Format deteksi otomatis: TTF, OTF , CFF, WOFF , WOff2, EOT, Tipe 1
  • Akses metadata font melalui kelas dasar Font: font_name, font_family,font_style , num_glyphs
  • Membaca kode glyph peta dengan FontEncoding.unicode_to_gid() dan get_all_codepoints()
  • Periksa metrik font dengan FontMetrics: naik, turun, garis gap, em-square

Kasus Penggunaan Tipikal

  • Pipeline validasi font dan ekstraksi metadata
  • Pemeriksaan CI/CD yang memverifikasi nama keluarga font dan jumlah glyphs
  • Layanan pencetakan font web yang menerima beberapa format input
  • Alat desain font yang menampilkan metadata tanpa runtime desktop

Akses Glyph dan Inspeksi Jalur

  • Dapatkan glyphs dengan ID atau Unicode dengan GlyphAccessor.get_glyph_by_id() dan get_glyph_by_unicode()
  • Resolve semua glyphs untuk string dengan GlyphAccessor.get_glyphs_for_text()
  • Periksa jalur garis besar glyph sebagai perintah yang diketik: MoveTo, LineTo , QuadraticTo,CurveTo,, ClosePath
  • Akses kotak pengbatas glyph, lebar maju, dan bantalan samping dari properti Glyph
  • Membaca pasangan kerning dari KernPair untuk perhitungan tata letak teks yang akurat

Kasus Penggunaan Tipikal

  • Pemeriksaan cakupan glyph untuk rendering teks multibahasa
  • Ekstraksi garis besar untuk jalur SVG atau generasi vektor
  • Validasi tabel inti dalam alur kerja QA font
  • Penelitian penciptaan teks dan percobaan tata letak tingkat rendah

Konversi Font

  • Konversi antara TTF, OTF , CFF, WOFF , WOff2, EOT, dan Tipe 1 dengan FontConverter.convert()
  • Mengadaptasi tipe kurva Bezier dengan CurveAdapter.quad_to_cubic() dan cubic_to_quads()
  • Konversi jalur glyph antara kuadrat dan kubik dengan convert_path_quad_to_cubic() dan convert_path_cubic_to_quad()

Kasus Penggunaan Tipikal

  • Web font pipelines yang mengkonversi TTF master fonts ke WOFF2 untuk distribusi
  • Jenis alat pengecoran yang mengekspor ke beberapa target format dari satu sumber
  • Konversi EOT lama untuk tumpukan font web yang kompatibel ke belakang
  • Normalisasi format font otomatis dalam integrasi berkelanjutan

Subsetasi Font

  • Subset font oleh Unicode teks dengan FontSubsetter.subset_by_text()
  • Subset dengan daftar ID glyph dengan FontSubsetter.subset_by_gids()
  • Menghasilkan subset yang dioptimalkan dengan FontSubsetter.subset_for_web()
  • Menerapkan profil yang telah ditetapkan dengan FontSubsetter.subset_by_presets() dan available_presets()
  • Menganalisis cakupan subset dengan FontSubsetter.analyze_coverage() dan analyze_web_coverage()

Kasus Penggunaan Tipikal

  • Mengurangi ukuran beban WOFF2 untuk halaman web dengan set karakter terbatas
  • Menghasilkan subset font khusus bahasa untuk penyebaran i18n
  • Aliran kerja lisensi font yang mendistribusikan subset per-halaman set
  • Optimalisasi kinerja untuk aplikasi web seluler

Optimasi Web dan Variabel Font Preview

  • Strip tabel lama dan Mac nama catatan dengan FontCleaner.clean_for_web()
  • Periksa variabel font axis kompatibilitas dengan CompatibilityChecker.compare_fonts() dan compare_variable_instances()
  • Generasi animasi APNG sumbu menyapu dengan AnimationPreviewBuilder.build_axis_sweep()
  • Bangun jalur animasi multi-langkah dengan AnimationPreviewBuilder.build_path()

Kasus Penggunaan Tipikal

  • Halaman contoh font dan eksplorator sumbu interaktif untuk pengecoran jenis
  • Jalur pipa CI yang memverifikasi perilaku font variabel sebelum distribusi
  • Performa web pipelines yang membuang tabel biner non-esensial
  • Miniatur pratinjau font untuk aplikasi manajemen font

Mengunggah File Font

Buka font TrueType atau OpenTyme 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 Glyph untuk string teks

Resolve semua glyphs untuk titik kode Unicode dan memeriksa jalur garis besar 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)

Generate a Variable Font Axis Sweep Animation (Membuat animasi pencoblosan poros font yang bervariasi)

Buat APNG animasi yang menyapu sumbu font variabel dari 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 Penginstalan Web

Strip tabel lama dan catatan nama Mac untuk mengurangi ukuran biner sebelum web server.

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 Aspose.Font FOSS untuk Python?

Ini adalah perpustakaan Python murni yang dilisensikan MIT untuk memuat, memeriksa, mengkonversi dan men-subset font dalam format TTF, OTF , CFF, Type 1, WOFF , WOff2, dan EOT. Tidak diperlukan ketergantungan asli .

Bagaimana saya menginstal Aspose.Font FOSS untuk Python?

Run pip install "aspose-font>=1.0.0". Tidak diperlukan ketergantungan tingkat sistem. Perpustakaan bekerja pada Windows, macOS, dan Linux dengan Python 3.10 atau lebih baru.

Format font apa yang didukung?

FontLoader.open() membaca TTF, OTF , CFF, Tipe 1, WOFF , WOff2, dan EOT. FontConverter.convert() menulis TFT, CFC, WOF, dan WOW2. Eot hanya dibaca.

Apakah Font.to_bytes ((() tersedia?

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

Bisakah saya subset font untuk pengiriman web?

Ya. FontSubsetter.subset_by_text(font, text) mengembalikan sebuah Font baru yang hanya berisi glyphs yang diperlukan untuk teks tertentu.FontSubsetter.subset(font, codepoints) dan subset_by_gids(font, gids) memberikan kontrol lebih halus.

  

Sumber Daya Dukungan dan Pembelajaran

 Bahasa Indonesia