Renderowanie prezentacji z czcionkami alternatywnymi w Pythonie przez Java

Przegląd

Aspose.Slides umożliwia renderowanie prezentacji przy użyciu reguł czcionek alternatywnych. Ten artykuł pokazuje, jak utworzyć kolekcję reguł czcionek alternatywnych, modyfikować jej reguły poprzez usuwanie lub dodawanie czcionek alternatywnych oraz przypisać kolekcję przy użyciu metody FontsManager.setFontFallBackRulesCollection.

Po przypisaniu kolekcji reguł czcionek alternatywnych do FontsManager prezentacji, reguły są stosowane podczas operacji takich jak zapisywanie, renderowanie i konwertowanie prezentacji. Przykład demonstruje, jak używać skonfigurowanych reguł przy renderowaniu miniatury slajdu i zapisywaniu jej jako obrazu JPEG.

Renderowanie slajdu przy użyciu reguł czcionek alternatywnych

Poniższy przykład obejmuje te kroki:

  1. Utwórz kolekcję reguł czcionek alternatywnych.
  2. Usuń czcionkę alternatywną z reguły i dodaj czcionki alternatywne do innej reguły.
  3. Przypisz kolekcję reguł przy użyciu setFontFallBackRulesCollection na menedżerze czcionek zwróconym przez getFontsManager.
  4. Użyj metody Presentation.save aby zapisać prezentację w tym samym formacie lub w innym formacie. Po przypisaniu kolekcji reguł czcionek alternatywnych do FontsManager, reguły są stosowane podczas operacji na prezentacji: zapisywanie, renderowanie, konwertowanie i tak dalej.
import jpype
import asposeslides

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

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

# Utwórz nową kolekcję reguł.
fallback_rules = FontFallBackRulesCollection()

# Utwórz kilka reguł.
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:
    # Spróbuj usunąć czcionkę alternatywną "Tahoma" z reguł.
    fallback_rule.remove("Tahoma")

    # Zaktualizuj reguły dla określonego zakresu.
    if fallback_rule.getRangeEndIndex() >= 0x400 and fallback_rule.getRangeStartIndex() < 0x500:
        fallback_rule.addFallBackFonts("Verdana")

# Usuń istniejącą regułę, zachowując przynajmniej jedną regułę do renderowania.
if fallback_rules.size() > 1:
    rule_to_remove = fallback_rules.get_Item(1)
    fallback_rules.remove(rule_to_remove)

presentation = Presentation("input.pptx")
try:
    # Przypisz przygotowaną kolekcję reguł.
    presentation.getFontsManager().setFontFallBackRulesCollection(fallback_rules)

    # Renderuj miniaturę przy użyciu skonfigurowanej kolekcji reguł.
    slide_image = presentation.getSlides().get_Item(0).getImage(1.0, 1.0)
    try:
        # Zapisz obraz na dysku w formacie JPEG.
        slide_image.save("Slide_0.jpg", ImageFormat.Jpeg)
    finally:
        slide_image.dispose()
finally:
    presentation.dispose()