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

Aspose.Font FOSS untuk Python

Perpustakaan Python sumber terbuka untuk memuatkan, memeriksa, menukar, dan membuat subset fail fon TTF, OTF, CFF, WOFF, WOFF2, dan EOT.

Bekerja dengan Fon secara programatik dalam Python

Aspose.Font FOSS untuk Python adalah toolkit pure-Python untuk memuat, memeriksa, menukar, membuat subset, dan pratonton fon merentasi format TrueType, OpenType, CFF, Type 1, WOFF, WOFF2, dan EOT. Perpustakaan ini berjalan pada Python 3.10 atau lebih baru dan tidak memerlukan perpustakaan fon OS luaran atau kebergantungan asli.

Perpustakaan ini menyediakan API yang bersih untuk pemuatan fon melalui FontLoader, akses glif melalui GlyphAccessor, penukaran format melalui FontConverter, pengoptimuman web melalui FontCleaner, subset yang menyedari teks melalui FontSubsetter, dan animasi fon berubah melalui AnimationPreviewBuilder. Metadata fon seperti nama, keluarga, gaya, bilangan glif, pengekodan, dan metrik boleh diakses melalui kelas asas Font tanpa perlu mengurai jadual binari secara manual.

Aspose.Font FOSS berlesen MIT dan boleh dipasang dari PyPI dengan satu arahan pip install. Ia sesuai untuk alatan reka bentuk fon, saluran fon web, enjin rendering glif, dan mana-mana aplikasi Python yang perlu membaca, menukar, atau menghasilkan fail fon. Untuk keluarga produk perusahaan, lihat Aspose.Font — Enterprise Product Family.

Pemuatkan Fon dan Pengesanan Format

  • Muat fon dari laluan fail atau bait mentah dengan FontLoader.open() dan FontLoader.load()
  • Mengesan format secara automatik: TTF, OTF, CFF, WOFF, WOFF2, EOT, Type 1
  • Akses metadata fon melalui kelas asas Font: font_name, font_family, font_style, num_glyphs
  • Baca peta pengekodan glif dengan FontEncoding.unicode_to_gid() dan get_all_codepoints()
  • Periksa metrik fon dengan FontMetrics: ascent, descent, line gap, em-square

Kes Penggunaan Biasa

  • Saluran paip pengesahan fon dan pengekstrakan metadata
  • Pemeriksaan CI/CD yang mengesahkan nama keluarga fon dan kiraan glif
  • Perkhidmatan pengambilan fon web yang menerima pelbagai format input
  • Alat reka bentuk fon yang memaparkan metadata tanpa runtime desktop

Akses Glif dan Pemeriksaan Laluan

  • Dapatkan glif mengikut ID atau Unicode dengan GlyphAccessor.get_glyph_by_id() dan get_glyph_by_unicode()
  • Selesaikan semua glyph untuk rentetan dengan GlyphAccessor.get_glyphs_for_text()
  • Periksa laluan kontur glif sebagai perintah yang ditaip: MoveTo, LineTo, QuadraticTo, CurveTo, ClosePath
  • Akses kotak sempadan glif, lebar maju, dan sokongan sisi dari ciri Glyph properties
  • Baca pasangan kerning dari KernPair untuk pengiraan susun atur teks yang tepat

Kes Penggunaan Biasa

  • Pemeriksaan liputan glif untuk rendering teks berbilang bahasa
  • Ekstraksi kontur untuk laluan SVG atau penjanaan vektor
  • Pengesahan jadual kerning dalam aliran kerja QA fon
  • Penyelidikan pembentukan teks dan percubaan susun atur peringkat rendah

Penukaran Fon

  • Tukar antara TTF, OTF, CFF, WOFF, WOFF2, EOT, dan Type 1 dengan FontConverter.convert()
  • Sesuaikan jenis lengkung Bezier dengan CurveAdapter.quad_to_cubic() dan cubic_to_quads()
  • Tukar laluan glif antara kuadratik dan kubik dengan convert_path_quad_to_cubic() dan convert_path_cubic_to_quad()

Kes Penggunaan Biasa

  • Saluran fon web yang menukar fon master TTF kepada WOFF2 untuk pengedaran
  • Alat foundry jenis yang mengeksport ke pelbagai format sasaran dari satu sumber
  • Penukaran EOT warisan untuk susunan fon web yang serasi ke belakang
  • Normalisasi format fon automatik dalam integrasi berterusan

Subset Fon

  • Subset fon dengan teks Unicode menggunakan FontSubsetter.subset_by_text()
  • Subset mengikut senarai ID glif dengan FontSubsetter.subset_by_gids()
  • Hasilkan subset yang dioptimumkan untuk web dengan FontSubsetter.subset_for_web()
  • Gunakan profil praset bernama dengan FontSubsetter.subset_by_presets() dan available_presets()
  • Analisis liputan subset dengan FontSubsetter.analyze_coverage() dan analyze_web_coverage()

Kes Penggunaan Biasa

  • Mengurangkan saiz muatan WOFF2 untuk halaman web dengan set aksara terhad
  • Menghasilkan subset fon khusus bahasa untuk penyebaran i18n
  • Alur kerja pelesenan Font yang mengagihkan subset set halaman per
  • Pengoptimuman prestasi untuk aplikasi web mudah alih

Pengoptimuman Web dan Pratonton Fon Variabel

  • Buang jadual warisan dan rekod nama Mac dengan FontCleaner.clean_for_web()
  • Semak keserasian paksi fon berubah dengan CompatibilityChecker.compare_fonts() dan compare_variable_instances()
  • Jana sapuan paksi APNG beranimasi dengan AnimationPreviewBuilder.build_axis_sweep()
  • Bina laluan animasi berbilang langkah dengan AnimationPreviewBuilder.build_path()

Kes Penggunaan Biasa

  • Halaman spesimen fon dan penjelajah paksi interaktif untuk pengeluar jenis huruf
  • CI pipelines yang mengesahkan kelakuan fon berubah sebelum pengedaran
  • Saluran prestasi web yang menyingkirkan jadual binari yang tidak penting
  • Thumbnail pratonton fon untuk aplikasi pengurusan fon

Muat Fail Fon

Buka fon TrueType atau OpenType daripada laluan fail dan baca metadata asasnya.

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 Rentetan Teks

Selesaikan semua glif untuk titik kod Unicode dan periksa laluan 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)

Jana Animasi Sapu Paksi Fon Boleh Ubah

Buat APNG beranimasi yang menyapu paksi fon berubah dari nilai permulaan 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 Fon untuk Penyebaran Web

Buang jadual warisan dan rekod nama Mac untuk mengurangkan saiz binari sebelum penyampaian 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

Soalan Lazim

Apakah Aspose.Font FOSS untuk Python?

Ia adalah perpustakaan Python tulen yang percuma, berlesen MIT untuk memuatkan, memeriksa, menukar, dan menyubset fon dalam format TTF, OTF, CFF, Type 1, WOFF, WOFF2, dan EOT. Tiada kebergantungan asli diperlukan.

Bagaimana saya memasang Aspose.Font FOSS untuk Python?

Jalankan pip install "aspose-font>=1.0.0". Tiada kebergantungan peringkat sistem diperlukan. Perpustakaan ini berfungsi pada Windows, macOS, dan Linux dengan Python 3.10 atau lebih baru.

Format fon mana yang disokong?

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

Adakah Font.to_bytes() tersedia?

Tidak. Font.to_bytes() tidak dilaksanakan dalam kelas asas. Gunakan FontConverter.convert() untuk menghasilkan Font baru dalam format yang dikehendaki.

Bolehkah saya subset fon untuk penghantaran web?

Ya. FontSubsetter.subset_by_text(font, text) mengembalikan Font baru yang hanya mengandungi glif yang diperlukan untuk teks yang diberikan. FontSubsetter.subset(font, codepoints) dan subset_by_gids(font, gids) memberikan kawalan yang lebih terperinci.

  

Sokongan dan Sumber Pembelajaran

 Bahasa Melayu