Вверхний индекс и нижний индекс

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

Вы можете добавить текст верхнего и нижнего индексов в любой фрагмент абзаца. Для добавления текста верхнего или нижнего индекса в текстовом фрейме Aspose.Slides необходимо использовать свойство Escapement класса PortionFormat.

Это свойство возвращает или задает текст верхнего или нижнего индекса (значение от -100% (нижний индекс) до 100% (верхний индекс). Например:

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

Реализация вышеуказанных шагов приведена ниже.

using (Presentation presentation = new Presentation("test.pptx"))
{
    // Получить слайд
    ISlide slide = presentation.Slides[0];

    // Создать текстовое поле
    IAutoShape shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 100, 100, 200, 100);
    ITextFrame textFrame = shape.TextFrame;
    textFrame.Paragraphs.Clear();

    // Создать абзац для текста верхнего индекса
    IParagraph superPar = new Paragraph();

    // Создать порцию с обычным текстом
    IPortion portion1 = new Portion();
    portion1.Text = "SlideTitle";
    superPar.Portions.Add(portion1);

    // Создать порцию с текстом верхнего индекса
    IPortion superPortion = new Portion();
    superPortion.PortionFormat.Escapement = 30;
    superPortion.Text = "TM";
    superPar.Portions.Add(superPortion);

    // Создать абзац для текста нижнего индекса
    IParagraph paragraph2 = new Paragraph();

    // Создать порцию с обычным текстом
    IPortion portion2 = new Portion();
    portion2.Text = "a";
    paragraph2.Portions.Add(portion2);

    // Создать порцию с текстом нижнего индекса
    IPortion subPortion = new Portion();
    subPortion.PortionFormat.Escapement = -25;
    subPortion.Text = "i";
    paragraph2.Portions.Add(subPortion);

    // Добавить абзацы в текстовое поле
    textFrame.Paragraphs.Add(superPar);
    textFrame.Paragraphs.Add(paragraph2);

    presentation.Save("TestOut.pptx", SaveFormat.Pptx);
    System.Diagnostics.Process.Start("TestOut.pptx");
 }