Android'de Sunumlara Yazı Tipi Gömme

Giriş

PowerPoint’ta gömülü yazı tipleri faydalıdır çünkü sunumunuzun herhangi bir sistem veya cihazda açıldığında doğru görünmesini istersiniz. Çalışmanızda yaratıcı olduğunuz için üçüncü taraf ya da 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.

Bu 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ışmanız için gereken çoğu özellik ve yöntemi içerir.

Gömülü Yazı Tiplerini Al ve Kaldır

Aspose.Slides, bir sunumda gömülü olan yazı tiplerini almanıza (veya öğrenmenize) olanak tanıyan getEmbeddedFonts yöntemini (FontsManager sınıfı tarafından sunulur) sağlar. 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 alıp 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örseli 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 mevcut bir yazı tipiyle değiştirilir
     slideImage = pres.getSlides().get_Item(0).getImage(new Dimension(960, 720));

     // Görseli JPEG formatında diske kaydeder
     try {
         slideImage.save("picture2_out.jpg", ImageFormat.Jpeg);
     } finally {
         if (slideImage != null) slideImage.dispose();
     }

    // Gömülü "Calibri" yazı tipi olmadan sunumu diske kaydeder
    pres.save("WithoutManageEmbeddedFonts_out.ppt", SaveFormat.Ppt);
} finally {
    if (pres != null) pres.dispose();
}

Gömülü Yazı Tiplerini Ekle

EmbedFontCharacters enum’ını ve addEmbeddedFont yönteminin iki aşırı yüklemesini kullanarak, bir sunumda yazı tiplerini gömmek için tercih ettiğiniz (gömme) kuralını seçebilirsiniz. Bu Java kodu, bir sunuma nasıl yazı tipleri 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();
}

Gömülü Yazı Tiplerini Sıkıştır

Bir sunumda gömülü 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();
}

SSS

Bir sunumdaki belirli bir yazı tipinin gömülmüş olmasına rağmen render sırasında hala ikame edileceğini nasıl anlayabilirim?
Yazı tipi yöneticisindeki substitution information ve fallback/substitution rules sayfalarına bakın: yazı tipi bulunamazsa 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 neredeyse 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, beklenmedik ikameler riskini ortadan kaldırabilir.