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

Aspose.Font FOSS for 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 berprograman 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, kiraan 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, paip fon web, enjin rendering glif, dan mana-mana aplikasi Python yang memerlukan membaca, menukar, atau menghasilkan fail fon. Untuk keluarga produk perusahaan, lihat Aspose.Font — Enterprise Product Family.

Pemuatan fon dan pengesanan format

  • Mengisi fon dari laluan fail atau bait mentah dengan FontLoader.open() dan FontLoader.load()
  • Format pengesanan automatik: TTF, OTF , CFF, WOFF , WOff2, EOT, Jenis 1
  • Akses metadata fon melalui kelas asas Font: font_name, font_family,font_style , num_glyphs
  • Baca peta pengekodan glyph dengan FontEncoding.unicode_to_gid() dan get_all_codepoints()
  • Periksa metrik fon dengan FontMetrics: pendakian, penurunan, jurang baris, em-square

Kes Penggunaan Tipikal

  • Pelan paip pengesahan fon dan penyampaian metadata
  • Pemeriksaan CI/CD yang mengesahkan nama keluarga fon dan bilangan glyphs
  • Perkhidmatan pemakanan fon web yang menerima pelbagai format input
  • Alat reka bentuk fon yang memaparkan metadata tanpa masa jalan desktop

Akses Glyph dan Pemeriksaan Jalur

  • Memulihkan glyphs oleh ID atau Unicode dengan GlyphAccessor.get_glyph_by_id() dan get_glyph_by_unicode()
  • Menyelesaikan semua glyph untuk rentetan dengan GlyphAccessor.get_glyphs_for_text()
  • Periksa laluan garis besar glyph sebagai arahan yang diketik: MoveTo, LineTo , QuadraticTo,CurveTo,, ClosePath
  • Akses kotak penghadaman glyph, lebar hadapan, dan bearing sisi dari sifat Glyph
  • Baca pasangan kerning dari KernPair untuk pengiraan susun atur teks yang tepat

Kes Penggunaan Tipikal

  • Pemeriksaan liputan glyph untuk penulisan teks berbilang bahasa
  • Pengekstrakan garis besar untuk generasi laluan atau vektor SVG
  • Kenali jadual kerning dalam alur kerja QA fon
  • Penyelidikan bentuk teks dan percubaan susun atur peringkat rendah

Pembalik fon

  • Menukar antara TTF, OTF , CFF, WOFF , WOff2, EOT, dan Jenis 1 dengan FontConverter.convert()
  • Sesuaikan jenis kurva Bezier dengan CurveAdapter.quad_to_cubic() dan cubic_to_quads()
  • Menukar laluan glyph antara kuadrat dan kubik dengan convert_path_quad_to_cubic() dan convert_path_cubic_to_quad()

Kes Penggunaan Tipikal

  • Perkhidmatan font web yang menukar fon induk TTF ke WOFF2 untuk pengedaran
  • Jenis alat pengecoran yang mengeksport kepada pelbagai sasaran format dari satu sumber
  • Penukaran EOT lama untuk tumpukan fon web yang serasi ke belakang
  • Normalisasi format fon automatik dalam integrasi berterusan

Penempatan font

  • Font subset oleh teks Unicode dengan FontSubsetter.subset_by_text()
  • Subset oleh senarai ID glyph dengan FontSubsetter.subset_by_gids()
  • Menghasilkan subset yang dioptimumkan dengan FontSubsetter.subset_for_web()
  • Memakai profil pra-set yang dinamakan dengan FontSubsetter.subset_by_presets() dan available_presets()
  • Menganalisis liputan subset dengan FontSubsetter.analyze_coverage() dan analyze_web_coverage()

Kes Penggunaan Tipikal

  • Mengurangkan saiz beban WOFF2 untuk laman web dengan set watak terhad
  • Menjana subset fon khusus bahasa untuk penyebaran i18n
  • Aliran kerja lesen fon yang mengedarkan subset set setiap halaman
  • Pengoptimuman prestasi untuk aplikasi web mudah alih

Pengoptimuman Web dan Pratinjau Font Berubah

  • Strip jadual lama dan rekod nama Mac dengan FontCleaner.clean_for_web()
  • Periksa pemasangan variable font axis dengan CompatibilityChecker.compare_fonts() dan compare_variable_instances()
  • Menghasilkan pengesanan paksi APNG yang beranimasi dengan AnimationPreviewBuilder.build_axis_sweep()
  • Membina laluan animasi pelbagai langkah dengan AnimationPreviewBuilder.build_path()

Kes Penggunaan Tipikal

  • Halaman contoh fon dan pengkaji paksi interaktif untuk kilang jenis
  • Perkhidmatan CI yang mengesahkan tingkah laku fon berubah sebelum pengedaran
  • Perkhidmatan perisian web yang membuang jadual binari tidak penting
  • Gambar kecil paparan pra-penampilan fon untuk aplikasi pengurusan fon

Mengisi fail fon

Buka fon TrueType atau OpenTyme dari 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 Glyph untuk rentetan teks

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

Menghasilkan Animasi Penjelasan Poros Font yang Berubah-ubah

Buat APNG animasi yang menyapu paksi fon pemboleh ubah dari nilai permulaan hingga 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 Pengeluaran Web

Strip jadual lama dan rekod nama Mac untuk mengurangkan saiz binari sebelum perkhidmatan 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 yang bebas, berlesen MIT untuk memuat naik, memeriksa, menukar dan menetapkan fon dalam format TTF, OTF , CFF, Jenis 1, WOFF , WOff2, dan EOT. Tiada ketergantungan asli diperlukan.

Bagaimana saya memasang Aspose.Font FOSS untuk Python?

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

Format fon yang mana disokong?

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

Adakah Font.to_bytes ((() tersedia?

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

Boleh saya subset font untuk penghantaran web?

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

  

Sokongan dan Sumber Pembelajaran

 Bahasa Melayu