PowerPoint Yazı Tiplerini .NET'te Özelleştirin

Genel Bakış

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

Yüklenen yazı tipleri, bir sunum render edildiğinde veya PDF, görüntüler ve diğer desteklenen formatlara dışa aktarıldığında 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.

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

Bir sunum teması, farklı yazı sistemleri için farklı yazı tipi ailelerine başvurabilir. Bu eşlemeler sadece yazı tipi adlarını saklar, ancak dosyaları kurmaz veya yüklemez. Eşlemeleri yönetmek için Script-Specific Theme Fonts sayfasına bakın ve aşağıdaki yükleme seçeneklerini kullanarak başvurulan yazı tiplerinin tutarlı render için kullanılabilir olmasını sağlayın.

Özel Yazı Tiplerini Yükleme

Aspose.Slides, bir sunumda kullanılan yazı tiplerini sistemde kurmadan yüklemenize izin verir. Bu, 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. Statik FontsLoader.LoadExternalFonts yöntemini çağırarak bu klasörlerden yazı tiplerini yükleyin.
  3. Sunumu yükleyin ve render/ 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:

using Aspose.Slides;
using Aspose.Slides.Export;

// Özel yazı tipi dosyalarını içeren klasörleri tanımla.
string[] fontFolders = { @"C:\MyFonts", @"D:\Fonts" };

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

using Presentation presentation = new Presentation("sample.pptx");

// Yüklenen yazı tiplerini kullanarak sunumu render/ dışa aktar (ör. PDF, görüntüler veya diğer formatlar).
presentation.Save("output.pdf", SaveFormat.Pdf);

// İş tamamlandıktan sonra yazı tipi önbelleğini temizle.
FontsLoader.ClearCache();

Özel Yazı Tipi Klasörlerini Al

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

Bu C# kodu, GetFontFolders yönteminin nasıl kullanılacağını gösterir:

using Aspose.Slides;

// Bu satır, yazı tipi dosyalarının denetlendiği klasörleri çıktılar.
// Bunlar LoadExternalFonts yöntemiyle eklenen ve sistem yazı tipi klasörleridir.
string[] fontFolders = FontsLoader.GetFontFolders();

Sunumla Kullanılacak Özel Yazı Tiplerini Belirtme

Aspose.Slides, sunumla kullanılacak dış yazı tiplerini belirtmek için DocumentLevelFontSources özelliğini sunar.

Bu C# kodu, DocumentLevelFontSources özelliğinin nasıl kullanılacağını gösterir:

using Aspose.Slides;

byte[] memoryFont1 = File.ReadAllBytes("customfonts\\CustomFont1.ttf");
byte[] memoryFont2 = File.ReadAllBytes("customfonts\\CustomFont2.ttf");

LoadOptions loadOptions = new LoadOptions();
loadOptions.DocumentLevelFontSources.FontFolders = new string[] { "assets\\fonts", "global\\fonts" };
loadOptions.DocumentLevelFontSources.MemoryFonts = new byte[][] { memoryFont1, memoryFont2 };
using (IPresentation presentation = new Presentation("MyPresentation.pptx", loadOptions))
{
    // Sunumla çalış
    // CustomFont1, CustomFont2 ve assets\fonts ile global\fonts klasörleri ve alt klasörlerindeki yazı tipleri sunuma kullanılabilir
}

Yazı Tiplerini Dışarıdan Yönetme

Aspose.Slides, dış yazı tiplerini ikili veriden yüklemek için LoadExternalFont(byte[] data) yöntemini sunar.

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

using Aspose.Slides;

FontsLoader.LoadExternalFont(File.ReadAllBytes("ARIALN.TTF"));
FontsLoader.LoadExternalFont(File.ReadAllBytes("ARIALNBI.TTF"));
FontsLoader.LoadExternalFont(File.ReadAllBytes("ARIALNI.TTF"));

try
{
    using (Presentation pres = new Presentation(""))
    {
        // dış yazı tipi sunum süresi boyunca yüklendi
    }
}
finally
{
    FontsLoader.ClearCache();
}

SSS

Özel yazı tipleri tüm formatlarda (PDF, PNG, SVG, HTML) dışa aktarmayı etkiler mi?
Evet. Bağlantılı yazı tipleri, render tarafından tüm dışa aktarma formatlarında kullanılır.

Özel yazı tipleri sonuç PPTX dosyasına otomatik olarak gömülür mü?
Hayır. Bir yazı tipini render için kaydetmek, PPTX dosyasına gömmekle aynı şey değildir. Yazı tipinin sunum dosyasının içinde bulunmasını istiyorsanız, açıkça gömme özelliklerini kullanmalısınız.

Bir özel yazı tipi belirli glifleri içermediğinde geri dönüş davranışını kontrol edebilir miyim?
Evet. İstenen glif eksik olduğunda hangi yazı tipinin kullanılacağını tam olarak tanımlamak için font substitution, replacement rules ve fallback sets yapılandırabilirsiniz.

Linux/Docker konteynerlerinde yazı tiplerini sistem genelinde kurmadan kullanabilir miyim?
Evet. Kendi yazı tipi klasörlerinize işaret edebilir veya yazı tiplerini bayt dizilerinden yükleyebilirsiniz. Bu, konteyner imajındaki sistem yazı tipi dizinlerine bağımlılığı ortadan kaldırır.

Note for Linux/Docker: When calling FontsLoader.LoadExternalFonts, ensure that every entry in the directories array contains a non-empty path to an existing directory. If an environment variable used to construct a font path is undefined or empty, Aspose.Slides may attempt to resolve the empty value as a full path, resulting in System.ArgumentException.

Lisanslama hakkında ne söyleyebilirsiniz—herhangi bir özel yazı tipini kısıtlama olmadan gömebilir miyim?
Yazı tipi lisans uyumluluğundan siz sorumlusunuz. Şartlar değişiklik gösterebilir; bazı lisanslar gömülmesini veya ticari kullanımını yasaklayabilir. Çıktıları dağıtmadan önce her zaman yazı tipinin EULA sını inceleyin.