JavaScript'te PowerPoint Yazı Tiplerini Özelleştirme
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 sağlayabilir veya dış yazı tiplerini doğrudan ikili veri üzerinden 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, farklı ortamlar arasında sunum çıktısının 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ı tiplerinin kaydedilmesi, bir PPTX dosyasına gömülmesinden ayrı bir işlemdir. Bir yazı tipinin sunumun içinde saklanması gerekiyorsa, gömme özelliklerini açıkça kullanın.
Aspose Slides, bu yazı tiplerini aşağıdaki loadExternalFonts yöntemiyle yüklemenizi sağlar:
Ö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 oluşan belgeler ortamlar arasında tutarlı görünür. Yazı tipleri özel dizinlerden yüklenir.
- Yazı tipi dosyalarını içeren bir veya daha fazla klasör belirtin.
- Statik FontsLoader.loadExternalFonts yöntemini çağırarak bu klasörlerden yazı tiplerini yükleyin.
- Sunumu yükleyin ve render/dışa aktarın.
- 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österir:
// Özel yazı tipi dosyalarını içeren klasörleri tanımlayın.
let fontFolders = java.newArray("java.lang.String", [externalFontFolder1, externalFontFolder2]);
// Belirtilen klasörlerden özel yazı tiplerini yükleyin.
aspose.slides.FontsLoader.loadExternalFonts(fontFolders);
let presentation = null;
try {
presentation = new aspose.slides.Presentation("sample.pptx");
// Yüklenen yazı tiplerini kullanarak sunumu render/dışa aktarın (ör. PDF, görüntüler veya diğer formatlar).
presentation.save("output.pdf", aspose.slides.SaveFormat.Pdf);
} finally {
if (presentation != null) presentation.dispose();
// İş tamamlandıktan sonra yazı tipi önbelleğini temizleyin.
aspose.slides.FontsLoader.clearCache();
}
Note
FontsLoader.loadExternalFonts ek klasörleri yazı tipi arama yollarına ekler, ancak yazı tipi başlatma sırasını değiştirmez. Yazı tipleri şu sırayla başlatılır:
- Varsayılan işletim sistemi yazı tipi yolu.
- FontsLoader aracılığıyla yüklenen yollar.
Özel Yazı Tipi Klasörünü Alma
Aspose.Slides, yazı tipi klasörlerini bulmanıza olanak tanıyan getFontFolders yöntemini sağlar. Bu yöntem, LoadExternalFonts yöntemiyle eklenen klasörleri ve sistem yazı tipi klasörlerini döndürür.
Bu JavaScript kodu, getFontFolders nasıl kullanılacağını gösterir:
// Bu satır, yazı tipi dosyalarının arandığı klasörleri çıktılar.
// Bunlar LoadExternalFonts yöntemiyle eklenen klasörler ve sistem yazı tipi klasörleridir.
var fontFolders = aspose.slides.FontsLoader.getFontFolders();
Sunumda Kullanılan Özel Yazı Tiplerini Belirleme
Aspose.Slides, sunumla birlikte kullanılacak dış yazı tiplerini belirlemenize olanak tanıyan setDocumentLevelFontSources özelliğini sunar.
Bu JavaScript kodu, setDocumentLevelFontSources özelliğinin nasıl kullanılacağını gösterir:
var memoryFont1 = java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "customfonts/CustomFont1.ttf"));
var memoryFont2 = java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "customfonts/CustomFont2.ttf"));
var loadOptions = new aspose.slides.LoadOptions();
loadOptions.getDocumentLevelFontSources().setFontFolders(java.newArray("java.lang.String", ["assets/fonts", "global/fonts"]));
loadOptions.getDocumentLevelFontSources().setMemoryFonts(java.newArray("[B", [java.newArray("byte", ["item1", "item2", "item3"])]));
var pres = new aspose.slides.Presentation("MyPresentation.pptx", loadOptions);
try {
// Sunumla çalış
// CustomFont1, CustomFont2 ve assets\fonts & global\fonts klasörleri ve alt klasörlerindeki yazı tipleri sunum için kullanılabilir
} finally {
if (pres != null) {
pres.dispose();
}
}
Yazı Tiplerini Dışarıdan Yönetme
Aspose.Slides, dış yazı tiplerini ikili veri üzerinden yüklemenizi sağlayan loadExternalFont(byte[] data) yöntemini sunar.
Bu JavaScript kodu, bayt dizisi ile yazı tipi yükleme sürecini gösterir:
java.callStaticMethodSync("com.aspose.slides.FontsLoader", "loadExternalFonts", java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "ARIALN.TTF")));
java.callStaticMethodSync("com.aspose.slides.FontsLoader", "loadExternalFonts", java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "ARIALNBI.TTF")));
java.callStaticMethodSync("com.aspose.slides.FontsLoader", "loadExternalFonts", java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "ARIALNI.TTF")));
try {
var pres = new aspose.slides.Presentation("");
try {
// sunum süresi boyunca dış yazı tipi yüklendi
} finally {
}
} finally {
java.callStaticMethodSync("com.aspose.slides.FontsLoader", "clearCache");
}
SSS
Özel yazı tipleri tüm formatlara (PDF, PNG, SVG, HTML) dışa aktarımı etkiler mi?
Evet. Bağlantılı yazı tipleri, render tarafından tüm dışa aktarma formatlarında kullanılır.
Özel yazı tipleri otomatik olarak oluşturulan PPTX dosyasına gömülür mü?
Hayır. Render için bir yazı tipini kaydetmek, onu bir PPTX dosyasına gömmekle aynı şey değildir. Yazı tipinin sunum dosyası içinde taşınmasını istiyorsanız, açıkça gömme özelliklerini kullanmanız gerekir.
Özel bir yazı tipinde belirli glifler eksik olduğunda yedekleme davranışını kontrol edebilir miyim?
Evet. Yazı tipi ikamesi, değiştirme kuralları ve yedekleme setleri yapılandırarak, istenen glif bulunamadığında hangi yazı tipinin kullanılacağını tam olarak tanımlayabilirsiniz.
Linux/Docker konteynerlerinde yazı tiplerini sistem genelinde kurmadan kullanabilir miyim?
Evet. Kendi yazı tipi klasörlerinize işaret ederek veya bayt dizilerinden yazı tiplerini yükleyerek bunu yapabilirsiniz. Bu, konteyner imajındaki sistem yazı tipi dizinlerine herhangi bir bağımlılığı ortadan kaldırır.
Lisanslama konusunda ne söyleyebilirsiniz—herhangi bir özel yazı tipini kısıtlama olmadan gömebilir miyim?
Yazı tipi lisanslama uyumluluğu sizin sorumluluğunuzdadır. Şartlar değişiklik gösterebilir; bazı lisanslar gömme veya ticari kullanımı yasaklayabilir. Çıktıları dağıtmadan önce her zaman ilgili yazı tipinin EULA’sını inceleyin.