Управление надстрочным и подстрочным текстом в презентациях с помощью 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 аналогичным образом.