Vykreslení prezentací s náhradními fonty v Pythonu přes Java

Přehled

Aspose.Slides vám umožňuje vykreslovat prezentace pomocí pravidel náhradních fontů. Tento článek ukazuje, jak vytvořit kolekci pravidel náhradních fontů, upravit její pravidla odebráním nebo přidáním náhradních fontů a přiřadit kolekci pomocí metody FontsManager.setFontFallBackRulesCollection.

Jakmile je kolekce pravidel náhradních fontů přiřazena k FontsManager prezentace, pravidla se použijí během operací, jako je ukládání, vykreslování a převod prezentace. Příklad demonstruje, jak použít nakonfigurovaná pravidla při vykreslování miniatury snímku a jejím uložení jako JPEG obrázek.

Vykreslení snímku pomocí pravidel náhradních fontů

Následující příklad zahrnuje tyto kroky:

  1. Vytvořit kolekci pravidel náhradních fontů.
  2. Odstranit náhradní font z pravidla a přidat náhradní fonty k jinému pravidlu.
  3. Přiřadit kolekci pravidel pomocí setFontFallBackRulesCollection na správci fontů vráceném metodou getFontsManager.
  4. Použít metodu Presentation.save k uložení prezentace ve stejném formátu nebo v jiném formátu. Po přiřazení kolekce pravidel náhradních fontů k FontsManager se tato pravidla aplikují během operací s prezentací: ukládání, vykreslování, převod atd.
import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import FontFallBackRule, FontFallBackRulesCollection, ImageFormat, Presentation

# Vytvořte novou kolekci pravidel.
fallback_rules = FontFallBackRulesCollection()

# Vytvořte několik pravidel.
cyrillic_rule = FontFallBackRule(0x400, 0x4FF, "Times New Roman")
fallback_rules.add(cyrillic_rule)
arabic_rule = FontFallBackRule(0x600, 0x6FF, "Tahoma, Arial")
fallback_rules.add(arabic_rule)

for fallback_rule in fallback_rules:
    # Pokuste se odstranit náhradní font "Tahoma" z pravidel.
    fallback_rule.remove("Tahoma")

    # Aktualizujte pravidla pro zadaný rozsah.
    if fallback_rule.getRangeEndIndex() >= 0x400 and fallback_rule.getRangeStartIndex() < 0x500:
        fallback_rule.addFallBackFonts("Verdana")

# Odstraňte existující pravidlo, přičemž ponechte alespoň jedno pravidlo pro vykreslování.
if fallback_rules.size() > 1:
    rule_to_remove = fallback_rules.get_Item(1)
    fallback_rules.remove(rule_to_remove)

presentation = Presentation("input.pptx")
try:
    # Přiřaďte připravenou kolekci pravidel.
    presentation.getFontsManager().setFontFallBackRulesCollection(fallback_rules)

    # Vykreslete miniaturu pomocí nakonfigurované kolekce pravidel.
    slide_image = presentation.getSlides().get_Item(0).getImage(1.0, 1.0)
    try:
        # Uložte obrázek na disk ve formátu JPEG.
        slide_image.save("Slide_0.jpg", ImageFormat.Jpeg)
    finally:
        slide_image.dispose()
finally:
    presentation.dispose()