Java aracılığıyla Python'da PowerPoint Yazı Tiplerini Özelleştir

Genel Bakış

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

Yüklenen yazı tipleri, bir sunum PDF, görüntüler ve diğer desteklenen formatlara aktarılırken kullanılır. Bu, farklı ortamlar arasında sunum çıktısının tutarlı olmasını sağlar. Makale ayrıca Aspose.Slides tarafından kullanılan yazı tipi klasörlerini nasıl inceleyeceğinizi ve dış yazı tipleriyle çalıştıktan sonra yazı tipi önbelleğini nasıl temizleyeceğinizi açıklar.

Özel yazı tiplerini render için kaydetmek, 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.

Bir sunum teması, farklı yazı sistemleri için farklı yazı tipi ailelerine başvurabilir. Bu eşlemeler yalnızca yazı tipi adlarını depolar, ancak yazı tipi dosyalarını kurmaz veya yüklemez. Eşlemeleri yönetmek için Script-Specific Theme Fonts bölümüne bakın ve aşağıdaki yükleme seçeneklerini kullanarak başvurulan yazı tiplerini tutarlı bir render için kullanılabilir hâle getirin.

Özel Yazı Tiplerini Yükleme

Aspose.Slides, sistemde kurulum yapmadan bir sunumda kullanılan yazı tiplerini yüklemenizi sağlar. Bu, PDF, görüntüler ve diğer desteklenen formatlar gibi dışa aktarma çıktısını etkiler; böylece oluşturulan belgeler ortamlar arasında tutarlı görünür. Yazı tipleri özel dizinlerden yüklenir.

  1. Yazı dosyalarını içeren bir veya daha fazla klasör belirtin.
  2. Statik FontsLoader.loadExternalFonts metodunu ç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 metodunu çağırın.

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

from jpype import JArray, JString
from asposeslides.api import FontsLoader, Presentation, SaveFormat

# Özel yazı tipi dosyalarını içeren klasörleri tanımla.
font_folders = JArray(JString)(["assets/fonts", "global/fonts"])

# Belirtilen klasörlerden özel yazı tiplerini yükle.
FontsLoader.loadExternalFonts(font_folders)

presentation = None
try:
    presentation = Presentation("sample.pptx")

    # Yüklenen yazı tiplerini kullanarak sunumu render/ dışa aktar.
    presentation.save("output.pdf", SaveFormat.Pdf)
finally:
    if presentation is not None:
        presentation.dispose()

    # İş tamamlandıktan sonra yazı tipi önbelleğini temizle.
    FontsLoader.clearCache()

Özel Yazı Tipi Klasörlerini Almak

Aspose.Slides, yazı tipi klasörlerini bulmanızı sağlayan getFontFolders metodunu sunar. Bu metod, loadExternalFonts yöntemiyle eklenen klasörleri ve sistem yazı tipi klasörlerini döndürür.

Bu Python kodu, getFontFolders metodunun nasıl kullanılacağını gösterir:

from asposeslides.api import FontsLoader

# loadExternalFonts yöntemiyle eklenen klasörleri ve sistem yazı tipi klasörlerini al.
font_folders = FontsLoader.getFontFolders()

Sunumla Kullanılan Özel Yazı Tiplerini Belirtme

Aspose.Slides, sunumla kullanılacak dış yazı tiplerini belirlemenizi sağlayan getDocumentLevelFontSources metodunu sunar.

Bu Python kodu, getDocumentLevelFontSources metodunun nasıl kullanılacağını gösterir:

from pathlib import Path
from jpype import JArray, JByte, JString
from asposeslides.api import LoadOptions, Presentation

memory_font_primary = Path("customfonts/CustomFont1.ttf").read_bytes()
memory_font_secondary = Path("customfonts/CustomFont2.ttf").read_bytes()

load_options = LoadOptions()
font_folders = JArray(JString)(["assets/fonts", "global/fonts"])
memory_fonts = JArray(JByte, 2)([memory_font_primary, memory_font_secondary])
load_options.getDocumentLevelFontSources().setFontFolders(font_folders)
load_options.getDocumentLevelFontSources().setMemoryFonts(memory_fonts)

presentation = Presentation("MyPresentation.pptx", load_options)
try:
    # Sunumla çalış.
    # CustomFont1, CustomFont2 ve assets/fonts ile global/fonts içindeki yazı tipleri
    # ve alt klasörleri sunuma açıktır.
    pass
finally:
    presentation.dispose()

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

Aspose.Slides, ikili veriden dış yazı tiplerini yüklemenizi sağlayan loadExternalFont metodunu sunar.

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

from pathlib import Path
from jpype import JArray, JByte
from asposeslides.api import FontsLoader, Presentation

font_data = Path("ARIALN.TTF").read_bytes()
FontsLoader.loadExternalFont(JArray(JByte)(font_data))
font_data = Path("ARIALNBI.TTF").read_bytes()
FontsLoader.loadExternalFont(JArray(JByte)(font_data))
font_data = Path("ARIALNI.TTF").read_bytes()
FontsLoader.loadExternalFont(JArray(JByte)(font_data))

try:
    presentation = Presentation()
    try:
        # Sunum süresi boyunca dış yazı tipleri yüklenir.
        pass
    finally:
        presentation.dispose()
finally:
    FontsLoader.clearCache()

SSS

Özel yazı tipleri tüm formatlara (PDF, PNG, SVG, HTML) dışa aktarımı etkiler mi?

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

Özel yazı tipleri otomatik olarak sonuç PPTX dosyasına 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ına dahil edilmesi gerekiyorsa, açıkça gömme özelliklerini kullanmalısınız.

Bir özel yazı tipinde bazı glifler eksik olduğunda geri dönüş davranışını kontrol edebilir miyim?

Evet. Yazı tipi ikamesi, değiştirme kuralları ve geri dönüş setleri yapılandırarak istenen glif eksik olduğunda hangi yazı tipinin kullanılacağını tam olarak belirleyebilirsiniz.

Linux/Docker konteynerlerinde sistem genelinde kurulum yapmadan yazı tiplerini kullanabilir miyim?

Evet. Kendi yazı tipi klasörlerinize işaret ederek veya bayt dizilerinden yazı tiplerini yükleyerek. Bu, konteyner imajında sistem yazı tipi dizinlerine herhangi bir bağımlılığı ortadan kaldırır.

Lisanslama açısından—herhangi bir özel yazı tipini kısıtlama olmadan gömebilir miyim?

Yazı tipi lisans uyumluluğu sizin sorumluluğunuzdadır. Koşullar değişir; bazı lisanslar gömme veya ticari kullanımı yasaklayabilir. Çıktıları dağıtmadan önce her zaman yazı tipinin EULA’sını inceleyin.