Отрисовка презентаций с резервными шрифтами в Python через Java
Contents
[
Hide
]
Обзор
Aspose.Slides позволяет рендерить презентации с использованием правил резервных шрифтов. Эта статья показывает, как создать коллекцию правил резервных шрифтов, изменить её правила, удалив или добавив резервные шрифты, и назначить коллекцию с помощью метода FontsManager.setFontFallBackRulesCollection.
После назначения коллекции правил резервных шрифтов объекту FontsManager презентации, правила применяются во время операций, таких как сохранение, рендеринг и конвертация презентации. В примере показано, как использовать настроенные правила при рендеринге миниатюры слайда и сохранении её как изображения JPEG.
Отрисовка слайда с использованием правил резервных шрифтов
Следующий пример включает следующие шаги:
- Создать коллекцию правил резервных шрифтов.
- [Удалить] резервный шрифт из правила и [добавить резервные шрифты] в другое правило.
- Назначьте коллекцию правил, используя setFontFallBackRulesCollection на менеджере шрифтов, полученном через getFontsManager.
- Используйте метод Presentation.save для сохранения презентации в том же формате или в другом формате. После назначения коллекции правил резервных шрифтов объекту FontsManager, эти правила применяются при операциях над презентацией: сохранении, рендеринге, конвертации и т.д.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import FontFallBackRule, FontFallBackRulesCollection, ImageFormat, Presentation
# Создать новую коллекцию правил.
fallback_rules = FontFallBackRulesCollection()
# Создать несколько правил.
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:
# Попробовать удалить резервный шрифт "Tahoma" из правил.
fallback_rule.remove("Tahoma")
# Обновить правила для заданного диапазона.
if fallback_rule.getRangeEndIndex() >= 0x400 and fallback_rule.getRangeStartIndex() < 0x500:
fallback_rule.addFallBackFonts("Verdana")
# Удалить существующее правило, оставив как минимум одно правило для рендеринга.
if fallback_rules.size() > 1:
rule_to_remove = fallback_rules.get_Item(1)
fallback_rules.remove(rule_to_remove)
presentation = Presentation("input.pptx")
try:
# Назначить подготовленную коллекцию правил.
presentation.getFontsManager().setFontFallBackRulesCollection(fallback_rules)
# Отрисовать миниатюру, используя настроенную коллекцию правил.
slide_image = presentation.getSlides().get_Item(0).getImage(1.0, 1.0)
try:
# Сохранить изображение на диск в формате JPEG.
slide_image.save("Slide_0.jpg", ImageFormat.Jpeg)
finally:
slide_image.dispose()
finally:
presentation.dispose()