Управление надстрочным и подстрочным текстом в презентациях с помощью Python через Java

Обзор

Aspose.Slides предоставляет функции для интеграции верхнего и нижнего индекса текста в презентации PowerPoint (PPT, PPTX) и OpenDocument (ODP). Независимо от того, нужно ли вам выделить химические формулы, математические уравнения или добавить сноски, эти специальные варианты форматирования помогают сохранить ясность и точность. В этой статье вы узнаете, как без проблем применять стили верхнего и нижнего индекса и добиваться профессионального результата на каждом слайде.

Управление верхним и нижним индексом текста

Вы можете добавить текст в верхнем или нижнем индексе в любой части абзаца. Чтобы применить это форматирование в текстовом фрейме Aspose.Slides, используйте метод setEscapement класса PortionFormat.

Значение escapement варьируется от -100 % (нижний индекс) до 100 % (верхний индекс). Например:

  • Создайте экземпляр класса Presentation.
  • Получите слайд по его индексу.
  • Добавьте AutoShape типа ShapeType.Rectangle на слайд.
  • Получите доступ к TextFrame , связанному с AutoShape.
  • Очистите существующие абзацы.
  • Создайте абзац для текста в верхнем индексе и добавьте его в коллекцию абзацев текстового фрейма.
  • Создайте часть текста.
  • Используйте setEscapement для указания значения от 0 до 100 для верхнего индекса (0 — нет верхнего индекса).
  • Установите текст Portion и добавьте его в коллекцию частей абзаца.
  • Создайте абзац для текста в нижнем индексе и добавьте его в коллекцию абзацев текстового фрейма.
  • Создайте часть текста.
  • Используйте setEscapement для указания значения от -100 до 0 для нижнего индекса (0 — нет нижнего индекса).
  • Установите текст Portion и добавьте его в коллекцию частей абзаца.
  • Сохраните презентацию в файл PPTX.

Следующий пример реализует эти шаги:

import jpype
import asposeslides

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

from asposeslides.api import Paragraph, Portion, Presentation, SaveFormat, ShapeType

# Создать презентацию.
presentation = Presentation()
try:
    # Получить слайд.
    slide = presentation.getSlides().get_Item(0)

    # Создать текстовое поле.
    shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 100, 100, 200, 100)
    text_frame = shape.getTextFrame()
    text_frame.getParagraphs().clear()

    # Создать абзац для надстрочного текста.
    superscript_paragraph = Paragraph()

    # Создать часть с обычным текстом.
    title_portion = Portion()
    title_portion.setText("SlideTitle")
    superscript_paragraph.getPortions().add(title_portion)

    # Создать часть с надстрочным текстом.
    superscript_portion = Portion()
    superscript_portion.getPortionFormat().setEscapement(30)
    superscript_portion.setText("TM")
    superscript_paragraph.getPortions().add(superscript_portion)

    # Создать абзац для нижстрочного текста.
    subscript_paragraph = Paragraph()

    # Создать часть с обычным текстом.
    base_portion = Portion()
    base_portion.setText("a")
    subscript_paragraph.getPortions().add(base_portion)

    # Создать часть с нижстрочным текстом.
    subscript_portion = Portion()
    subscript_portion.getPortionFormat().setEscapement(-25)
    subscript_portion.setText("i")
    subscript_paragraph.getPortions().add(subscript_portion)

    # Добавить абзацы в текстовое поле.
    text_frame.getParagraphs().add(superscript_paragraph)
    text_frame.getParagraphs().add(subscript_paragraph)

    presentation.save("formatText.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

FAQ

Будут ли сохранены верхний и нижний индексы при экспорте в PDF или другие форматы?

Да, Aspose.Slides корректно сохраняет форматирование верхнего и нижнего индексов при экспорте презентаций в PDF, PPT/PPTX, изображения и другие поддерживаемые форматы. Специальное форматирование остаётся неизменным во всех выходных файлах.

Можно ли комбинировать верхний и нижний индексы с другими стилями форматирования, например полужирным или курсивом?

Да, Aspose.Slides позволяет смешивать различные стили текста в одной части. Вы можете включать полужирный, курсив, подчёркивание и одновременно применять верхний или нижний индекс, настроив соответствующие свойства в PortionFormat.

Работает ли форматирование верхнего и нижнего индекса для текста внутри таблиц, диаграмм или SmartArt?

Да, Aspose.Slides поддерживает форматирование в большинстве объектов, включая таблицы и элементы диаграмм. При работе с SmartArt необходимо получить доступ к соответствующим элементам (например, к SmartArtNode) и их текстовым контейнерам, а затем настроить свойства PortionFormat аналогичным образом.