Menyematkan Font dalam Presentasi di .NET
Pengantar
Menyematkan font dalam PowerPoint memastikan presentasi Anda mempertahankan tampilan yang dimaksud di berbagai sistem. Baik menggunakan font unik untuk kreativitas maupun yang standar, menyematkan font mencegah gangguan teks dan tata letak.
Jika Anda menggunakan font pihak ketiga atau non-standar karena berkreasi dengan pekerjaan Anda, maka Anda memiliki alasan lebih untuk menyematkan font tersebut. Sebaliknya (tanpa font yang disematkan), teks atau angka pada slide, tata letak, gaya, dll. dapat berubah atau menjadi kotak‑kotak yang membingungkan.
Manfaatkan kelas FontsManager, FontData, dan Compress untuk mengelola font yang disematkan.
Ambil dan Hapus Font yang Disematkan
Dapatkan atau hapus font yang disematkan dari sebuah presentasi dengan mudah menggunakan metode GetEmbeddedFonts dan RemoveEmbeddedFont.
Kode C# berikut menunjukkan cara mengambil dan menghapus font yang disematkan dari sebuah presentasi:
using (Presentation presentation = new Presentation("EmbeddedFonts.pptx"))
{
ISlide slide = presentation.Slides[0];
// Merender slide yang berisi bingkai teks yang menggunakan font "FunSized" yang disematkan
using (IImage image = slide.GetImage(new Size(960, 720)))
{
image.Save("picture1_out.png", ImageFormat.Png);
}
IFontsManager fontsManager = presentation.FontsManager;
IFontData[] embeddedFonts = fontsManager.GetEmbeddedFonts();
// Menemukan font "Calibri"
IFontData funSizedEmbeddedFont = Array.Find(embeddedFonts, delegate (IFontData data)
{
return data.FontName == "Calibri";
});
// Menghapus font "Calibri"
fontsManager.RemoveEmbeddedFont(funSizedEmbeddedFont);
// Merender presentasi; font "Calibri" digantikan dengan yang sudah ada
using (IImage image = slide.GetImage(new Size(960, 720)))
{
image.Save("picture2_out.png", ImageFormat.Png);
}
// Menyimpan presentasi tanpa font "Calibri" yang disematkan ke disk
presentation.Save("WithoutManageEmbeddedFonts_out.ppt", SaveFormat.Ppt);
}
Tambah Font yang Disematkan
Dengan menggunakan enum EmbedFontCharacters dan dua overload dari metode AddEmbeddedFont, Anda dapat memilih aturan (penyematan) yang diinginkan untuk menyematkan font dalam sebuah presentasi. Kode C# berikut menunjukkan cara menyematkan dan menambah font ke dalam presentasi:
// Memuat presentasi
Presentation presentation = new Presentation("Fonts.pptx");
IFontData[] allFonts = presentation.FontsManager.GetFonts();
IFontData[] embeddedFonts = presentation.FontsManager.GetEmbeddedFonts();
foreach (IFontData font in allFonts)
{
if (!embeddedFonts.Contains(font))
{
presentation.FontsManager.AddEmbeddedFont(font, EmbedFontCharacters.All);
}
}
// Menyimpan presentasi ke disk
presentation.Save("AddEmbeddedFont_out.pptx", SaveFormat.Pptx);
Kompres Font yang Disematkan
Optimalkan ukuran file dengan mengompres font yang disematkan menggunakan CompressEmbeddedFonts.
Contoh kode untuk kompresi:
using (Presentation pres = new Presentation("pres.pptx"))
{
Aspose.Slides.LowCode.Compress.CompressEmbeddedFonts(pres);
pres.Save("pres-out.pptx", SaveFormat.Pptx);
}
FAQ
Bagaimana saya dapat mengetahui bahwa font tertentu dalam presentasi masih akan digantikan saat rendering meskipun sudah disematkan?
Periksa informasi substitusi di font manager dan aturan fallback/substitusi: jika font tidak tersedia atau dibatasi, fallback akan digunakan.
Apakah layak menyematkan font “system” seperti Arial/Calibri?
Biasanya tidak—font tersebut hampir selalu tersedia. Namun untuk portabilitas penuh dalam lingkungan “tipis” (Docker, server Linux tanpa font terpasang), menyematkan font sistem dapat menghilangkan risiko substitusi yang tidak terduga.