Sesuaikan Font PowerPoint di Python
Gambaran Umum
Aspose.Slides untuk Python memungkinkan Anda menyediakan font khusus pada waktu berjalan sehingga presentasi ditampilkan dengan benar bahkan ketika font yang diperlukan tidak terpasang di sistem host. Selama mengekspor ke PDF atau gambar, Anda dapat menyediakan folder font atau data font dalam memori untuk mempertahankan tata letak teks, metrik glif, dan tipografi. Ini membuat rendering sisi server dapat diprediksi di berbagai lingkungan, menghilangkan ketergantungan font tingkat OS, dan mencegah fallback atau reflow yang tidak diinginkan. Artikel ini menunjukkan cara mendaftarkan sumber font.
Aspose.Slides memungkinkan Anda memuat font berikut menggunakan metode load_external_font dan load_external_fonts dari kelas FontsLoader:
- Font TrueType (.ttf) dan TrueType Collection (.ttc). Lihat TrueType.
- Font OpenType (.otf). Lihat OpenType.
Muat Font Kustom
Aspose.Slides memungkinkan Anda memuat font yang digunakan dalam sebuah presentasi tanpa menginstalnya di sistem. Hal ini memengaruhi output ekspor—seperti PDF, gambar, dan format lain yang didukung—sehingga dokumen hasil tampak konsisten di semua lingkungan. Font dimuat dari direktori khusus.
- Tentukan satu atau beberapa folder yang berisi file font.
- Panggil metode statis FontsLoader.load_external_fonts untuk memuat font dari folder tersebut.
- Muat dan render/ekspor presentasi.
- Panggil FontsLoader.clear_cache untuk menghapus cache font.
import aspose.slides as slides
# Tetapkan folder yang berisi file font khusus.
font_folders = [ external_font_folder1, external_font_folder2 ]
# Muat font khusus dari folder yang ditentukan.
slides.FontsLoader.load_external_fonts(font_folders)
with slides.Presentation("sample.pptx") as presentation:
# Render/ekspor presentasi (mis., ke PDF, gambar, atau format lain) menggunakan font yang dimuat.
presentation.save("output.pdf", slides.export.SaveFormat.PDF)
# Bersihkan cache font setelah pekerjaan selesai.
slides.FontsLoader.clear_cache()
Note
FontsLoader.load_external_fonts menambahkan folder tambahan ke jalur pencarian font, tetapi tidak mengubah urutan inisialisasi font.
Font diinisialisasi dalam urutan berikut:
- Jalur font default sistem operasi.
- Jalur yang dimuat melalui FontsLoader.
Dapatkan Folder Font Kustom
Aspose.Slides menyediakan metode get_font_folders untuk mengambil folder font. Metode ini mengembalikan baik folder yang ditambahkan melalui load_external_fonts maupun folder font sistem.
import aspose.slides as slides
# Panggilan ini mengembalikan folder yang diperiksa untuk file font.
# Ini termasuk folder yang ditambahkan melalui metode load_external_fonts dan folder font sistem.
font_folders = slides.FontsLoader.get_font_folders()
Tentukan Font Kustom untuk Presentasi
Aspose.Slides menyediakan properti document_level_font_sources, yang memungkinkan Anda menentukan font eksternal yang akan digunakan dengan sebuah presentasi.
import aspose.slides as slides
with open("CustomFont1.ttf", "br") as font1_stream:
font1_data = font1_stream.read()
with open("CustomFont2.ttf", "br") as font2_stream:
font2_data = font2_stream.read()
load_options = slides.LoadOptions()
load_options.document_level_font_sources.font_folders = ["assets\\fonts", "global\\fonts"]
load_options.document_level_font_sources.memory_fonts = [font1_data, font2_data]
with slides.Presentation("Fonts.pptx", load_options) as presentation:
# ...
# Bekerja dengan presentasi.
# CustomFont1, CustomFont2, dan font dari folder assets\fonts dan global\fonts (beserta subfoldernya) tersedia untuk presentasi.
# ...
print(len(presentation.slides))
Muat Font Eksternal dari Data Biner
Aspose.Slides menyediakan metode load_external_font untuk memuat font eksternal dari data biner.
import aspose.slides as slides
def read_all_bytes(file_path):
with open(file_path, "rb") as file_stream:
file_data = file_stream.read()
return file_data
# Muat font eksternal dari array byte.
slides.FontsLoader.load_external_font(read_all_bytes("ARIALN.TTF"))
slides.FontsLoader.load_external_font(read_all_bytes("ARIALNBI.TTF"))
slides.FontsLoader.load_external_font(read_all_bytes("ARIALNI.TTF"))
try:
with slides.Presentation() as presentation:
# Font eksternal tersedia selama masa hidup instance presentasi ini.
print("processing")
finally:
slides.FontsLoader.clear_cache()
FAQ
Apakah font kustom memengaruhi ekspor ke semua format (PDF, PNG, SVG, HTML)?
Ya. Font yang terhubung digunakan oleh renderer pada semua format ekspor.
Apakah font kustom secara otomatis disematkan ke dalam PPTX yang dihasilkan?
Tidak. Mendaftarkan font untuk rendering tidak sama dengan menyematkannya ke dalam PPTX. Jika Anda membutuhkan font yang dibawa di dalam file presentasi, Anda harus menggunakan fitur penyematan.
Apakah saya dapat mengontrol perilaku fallback ketika font kustom tidak memiliki glif tertentu?
Ya. Konfigurasikan substitusi font, aturan penggantian, dan set fallback untuk menentukan secara tepat font mana yang digunakan ketika glif yang diminta tidak ada.
Apakah saya dapat menggunakan font di kontainer Linux/Docker tanpa menginstalnya secara sistem-wide?
Ya. Arahkan ke folder font Anda sendiri atau muat font dari array byte. Ini menghilangkan ketergantungan pada direktori font sistem dalam gambar kontainer.
Bagaimana dengan lisensi—apakah saya dapat menyematkan font kustom apa pun tanpa batasan?
Anda bertanggung jawab atas kepatuhan lisensi font. Syaratnya bervariasi; beberapa lisensi melarang penyematan atau penggunaan komersial. Selalu tinjau EULA font sebelum mendistribusikan hasil.