Java'da PowerPoint Yazı Tiplerini Özelleştirme

Overview

Aspose.Slides, işletim sistemine kurulum yapmadan sunumlarda özel yazı tiplerini kullanmanıza olanak tanır. Yazı tiplerini özel klasörlerden yükleyebilir, belge düzeyinde font kaynakları aracılığıyla belirli bir sunum için font sağlayabilir veya dış yazı tiplerini doğrudan ikili veriden yükleyebilirsiniz.

Yüklenen yazı tipleri, bir sunum işlenirken veya dışa aktarılırken, örneğin PDF, görüntüler ve diğer desteklenen formatlara, kullanılır. Bu, sunum çıktısının farklı ortamlar arasında tutarlı kalmasına yardımcı olur. Makale ayrıca Aspose.Slides tarafından kullanılan yazı tipi klasörlerinin nasıl inceleneceğini ve dış yazı tipleriyle çalıştıktan sonra yazı tipi önbelleğinin nasıl temizleneceğini açıklar.

Özel yazı tiplerini işleme için kaydetmek, yazı tiplerini bir PPTX dosyasına gömmekten ayrı bir işlemdir. Bir yazı tipinin sunum içinde saklanması gerekiyorsa, yazı tipi gömme özelliklerini açıkça kullanın.

Load Custom Fonts

Aspose.Slides, bir sunumda kullanılan yazı tiplerini sistemde kurmadan yüklemenize izin verir. Bu durum, PDF, görüntüler ve diğer desteklenen formatlar gibi dışa aktarma çıktısını etkiler; böylece ortaya çıkan belgeler ortamlar arasında tutarlı görünür. Yazı tipleri özel dizinlerden yüklenir.

  1. Yazı tipi dosyalarını içeren bir veya daha fazla klasör belirtin.
  2. Bu klasörlerden yazı tiplerini yüklemek için statik FontsLoader.loadExternalFonts yöntemini çağırın.
  3. Sunumu yükleyin ve işleyin/ dışa aktarın.
  4. Yazı tipi önbelleğini temizlemek için FontsLoader.clearCache yöntemini çağırın.

Aşağıdaki kod örneği, yazı tipi yükleme sürecini göstermektedir:

// Özel yazı tipi dosyalarını içeren klasörleri tanımlayın.
String[] fontFolders = new String[] { externalFontFolder1, externalFontFolder2 };

// Belirtilen klasörlerden özel yazı tiplerini yükleyin.
FontsLoader.loadExternalFonts(fontFolders);

Presentation presentation = null;
try {
    presentation = new Presentation("sample.pptx");
    
    // Yüklenen yazı tiplerini kullanarak sunumu işleyin/dışa aktarın (ör. PDF, görüntüler veya diğer formatlar).
    presentation.save("output.pdf", SaveFormat.Pdf);
} finally {
    if (presentation != null) presentation.dispose();

    // İş bittiğinde yazı tipi önbelleğini temizleyin.
    FontsLoader.clearCache();
}

Get Custom Font Folders

Aspose.Slides, yazı tipi klasörlerini bulmanıza olanak tanıyan getFontFolders yöntemini sunar. Bu yöntem, LoadExternalFonts yöntemiyle eklenen klasörleri ve sistem yazı tipi klasörlerini döndürür.

Bu Java kodu, getFontFolders kullanımını gösterir:

// Bu satır, yazı tipi dosyalarının arandığı klasörleri verir.
// Bunlar, LoadExternalFonts yöntemiyle eklenen klasörler ve sistem yazı tipi klasörleridir.
String[] fontFolders = FontsLoader.getFontFolders();

Specify Custom Fonts Used with a Presentation

Aspose.Slides, sunumla kullanılacak dış yazı tiplerini belirtmenizi sağlayan setDocumentLevelFontSources özelliğini sunar.

Bu Java kodu, setDocumentLevelFontSources özelliğinin nasıl kullanılacağını gösterir:

byte[] memoryFont1 = Files.readAllBytes("customfonts/CustomFont1.ttf");
byte[] memoryFont2 = Files.readAllBytes("customfonts/CustomFont2.ttf");

LoadOptions loadOptions = new LoadOptions();
loadOptions.getDocumentLevelFontSources().setFontFolders(new String[] { "assets/fonts", "global/fonts" });
loadOptions.getDocumentLevelFontSources().setMemoryFonts(new byte[][] { memoryFont1, memoryFont2 });

Presentation pres = new Presentation("MyPresentation.pptx", loadOptions);
try {
    // Sunumla çalış
    // CustomFont1, CustomFont2 ve assets\fonts & global\fonts klasörlerinden ve alt klasörlerinden gelen yazı tipleri sunuma açıktır
} finally {
    if (pres != null) pres.dispose();
}

Manage Fonts Externally

Aspose.Slides, dış yazı tiplerini ikili veriden yüklemenizi sağlayan loadExternalFont(byte[] data) yöntemini sunar.

Bu Java kodu, bayt dizisi üzerinden yazı tipi yükleme sürecini gösterir:

FontsLoader.loadExternalFont(Files.readAllBytes(Paths.get("ARIALN.TTF")));
FontsLoader.loadExternalFont(Files.readAllBytes(Paths.get("ARIALNBI.TTF")));
FontsLoader.loadExternalFont(Files.readAllBytes(Paths.get("ARIALNI.TTF")));

try
{
    Presentation pres = new Presentation("");
    try {
        // sunum ömrü boyunca yüklenen harici yazı tipi
    } finally {
        
    }
}
finally
{
    FontsLoader.clearCache();
}

FAQ

Do custom fonts affect export to all formats (PDF, PNG, SVG, HTML)?

Evet. Bağlantılı yazı tipleri, renderlayıcı tarafından tüm dışa aktarma formatlarında kullanılır.

Are custom fonts automatically embedded into the resulting PPTX?

Hayır. Bir yazı tipini işleme için kaydetmek, PPTX dosyasına gömmekle aynı şey değildir. Yazı tipinin sunum dosyasının içinde taşınmasını istiyorsanız, açıkça gömme özelliklerini kullanmalısınız.

Can I control fallback behavior when a custom font lacks certain glyphs?

Evet. İstenen glif eksik olduğunda hangi yazı tipinin kullanılacağını tam olarak tanımlamak için font ikamesi, değiştirme kuralları ve yedek setleri yapılandırabilirsiniz.

Can I use fonts in Linux/Docker containers without installing them system-wide?

Evet. Kendi yazı tipi klasörlerinize yönlendirebilir veya yazı tiplerini bayt dizilerinden yükleyebilirsiniz. Bu, konteyner imajındaki sistem yazı tipi dizinlerine olan bağımlılığı ortadan kaldırır.

What about licensing—can I embed any custom font without restrictions?

Yazı tipi lisansına uyumluluktan siz sorumlusunuz. Şartlar farklılık gösterebilir; bazı lisanslar gömme veya ticari kullanımını yasaklayabilir. Çıktıları dağıtmadan önce her zaman yazı tipinin son kullanıcı lisans sözleşmesini (EULA) inceleyin.