Java ile Sunumlarda Yazı Tipi Gömme
Introduction
PowerPoint’teki gömülü yazı tipleri herhangi bir sistem veya cihazda açıldığında sunumunuzun doğru görüntülenmesini istediğinizde faydalıdır. Çalışmanızda yaratıcı olduğunuz için üçüncü taraf veya standart dışı bir yazı tipi kullandıysanız, yazı tipinizi gömmek için daha da fazla nedeniniz olur. Aksi takdirde (gömülü yazı tipleri olmadan), slaytlarınızdaki metinler veya sayılar, düzen, stil vb. değişebilir veya karışık dikdörtgenlere dönüşebilir.
FontsManager sınıfı, FontData sınıfı, Compress sınıfı ve bunların arayüzleri, PowerPoint sunumlarında gömülü yazı tipleriyle çalışmak için ihtiyaç duyduğunuz çoğu özelliği ve yöntemi içerir.
Get and Remove Embedded Fonts
Aspose.Slides, bir sunumda gömülü olan yazı tiplerini elde etmenizi (veya öğrenmenizi) sağlayan getEmbeddedFonts yöntemini (FontsManager sınıfı tarafından sunulur). Yazı tiplerini kaldırmak için aynı sınıf tarafından sunulan removeEmbeddedFont yöntemi kullanılır.
Bu Java kodu, bir sunumdan gömülü yazı tiplerini nasıl elde edeceğinizi ve kaldıracağınızı gösterir:
// Bir sunum dosyasını temsil eden Presentation nesnesini oluşturur
Presentation pres = new Presentation("EmbeddedFonts.pptx");
try {
// Gömülü "FunSized" kullanan bir metin çerçevesi içeren slaytı render eder
IImage slideImage = pres.getSlides().get_Item(0).getImage(new Dimension(960, 720));
// //Görüntüyü JPEG formatında diske kaydeder
try {
slideImage.save("picture1_out.jpg", ImageFormat.Jpeg);
} finally {
if (slideImage != null) slideImage.dispose();
}
IFontsManager fontsManager = pres.getFontsManager();
// Tüm gömülü yazı tiplerini alır
IFontData[] embeddedFonts = fontsManager.getEmbeddedFonts();
// "Calibri" yazı tipini bulur
IFontData calibriEmbeddedFont = null;
for (int i = 0; i < embeddedFonts.length; i++) {
System.out.println(""+ embeddedFonts[i].getFontName());
if ("Calibri".equals(embeddedFonts[i].getFontName())) {
calibriEmbeddedFont = embeddedFonts[i];
break;
}
}
// "Calibri" yazı tipini kaldırır
fontsManager.removeEmbeddedFont(calibriEmbeddedFont);
// Sunumu render eder; "Calibri" yazı tipi varolan bir yazı tipine değiştirilir
slideImage = pres.getSlides().get_Item(0).getImage(new Dimension(960, 720));
//Görüntüyü JPEG formatında diske kaydeder
try {
slideImage.save("picture2_out.jpg", ImageFormat.Jpeg);
} finally {
if (slideImage != null) slideImage.dispose();
}
// Gömülü "Calibri" yazı tipine sahip olmayan sunumu diske kaydeder
pres.save("WithoutManageEmbeddedFonts_out.ppt", SaveFormat.Ppt);
} finally {
if (pres != null) pres.dispose();
}
Add Embedded Fonts
EmbedFontCharacters enum’ı ve addEmbeddedFont yönteminin iki aşırı yüklemesini kullanarak, sunuma yazı tiplerini gömmek için tercih ettiğiniz (gömme) kuralı seçebilirsiniz. Bu Java kodu, bir sunuma nasıl yazı tipi gömeceğinizi ve ekleyeceğinizi gösterir:
// Sunumu yükler
Presentation pres = new Presentation("Fonts.pptx");
try {
IFontData[] allFonts = pres.getFontsManager().getFonts();
IFontData[] embeddedFonts = pres.getFontsManager().getEmbeddedFonts();
for (IFontData font : allFonts)
{
boolean embeddedFontsContainsFont = false;
for (int i = 0; i < embeddedFonts.length; i++)
{
if (embeddedFonts[i].equals(font))
{
embeddedFontsContainsFont = true;
break;
}
}
if (!embeddedFontsContainsFont)
{
pres.getFontsManager().addEmbeddedFont(font, EmbedFontCharacters.All);
embeddedFonts = pres.getFontsManager().getEmbeddedFonts();
}
}
// Sunumu diske kaydeder
pres.save("AddEmbeddedFont_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Compress Embedded Fonts
Bir sunuma gömülü olan yazı tiplerini sıkıştırarak dosya boyutunu azaltmanızı sağlamak için Aspose.Slides, compressEmbeddedFonts yöntemini (Compress sınıfı tarafından sunulur) sağlar.
Bu Java kodu, gömülü PowerPoint yazı tiplerini nasıl sıkıştıracağınızı gösterir:
Presentation pres = new Presentation("pres.pptx");
try {
Compress.compressEmbeddedFonts(pres);
pres.save("pres-out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
FAQ
Gömülmüş olmasına rağmen, sunumdaki belirli bir yazı tipinin render sırasında hâlâ değiştirileceğini nasıl anlayabilirim?
Yazı tipi yöneticisindeki substitution information ve fallback/substitution rules sayfalarına bakın: yazı tipi mevcut değilse veya kısıtlıysa, bir yedek (fallback) kullanılacaktır.
Arial/Calibri gibi “sistem” yazı tiplerini gömmeye değer mi?
Genellikle hayır—bu yazı tipleri hemen hemen her zaman mevcuttur. Ancak “ince” ortamlar (Docker, önceden yüklü yazı tipleri olmayan bir Linux sunucusu) içinde tam taşınabilirlik için sistem yazı tiplerini gömmek, beklenmeyen değiştirmeler riskini ortadan kaldırabilir.