Надстрочные и подстрочные символы

Управление текстом с надстрочными и подстрочными символами

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

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

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

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

// The path to the documents directory.
const String outPath = u"../out/AddingSuperscriptAndSubscriptTextInTextFrame_out.pptx";
//const String templatePath = u"../templates/DefaultFonts.pptx";
// Load the desired the presentation
SharedPtr<Presentation> pres = MakeObject<Presentation>();
// Access first slide
SharedPtr<ISlide> sld = pres->get_Slides()->idx_get(0);
// Add an AutoShape of Rectangle type
SharedPtr<IAutoShape> ashp = sld->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 100, 100, 300, 300);
// Add TextFrame to the Rectangle
SharedPtr<ITextFrame> tf = ashp->AddTextFrame(String::Empty);
tf->get_Paragraphs()->Clear();
// Adding the first Paragraph
SharedPtr<Paragraph> superPar = MakeObject<Paragraph>();
SharedPtr<Portion> portion1 = MakeObject<Portion>(u"SlideTitle");
superPar->get_Portions()->Add(portion1);
SharedPtr<Portion> superPortion = MakeObject<Portion>();
superPortion->get_PortionFormat()->set_Escapement(30);
superPortion->set_Text(u"TM");
superPar->get_Portions()->Add(superPortion);
// Adding the first Paragraph
SharedPtr<Paragraph> subPar = MakeObject<Paragraph>();
SharedPtr<Portion> portion2 = MakeObject<Portion>(u"a");
subPar->get_Portions()->Add(portion2);
SharedPtr<Portion> subPortion = MakeObject<Portion>();
subPortion->get_PortionFormat()->set_Escapement(-25);
subPortion->set_Text(u"i");
subPar->get_Portions()->Add(subPortion);
//Adding to text frame
ashp->get_TextFrame()->get_Paragraphs()->Add(superPar);
ashp->get_TextFrame()->get_Paragraphs()->Add(subPar);
// Save PPTX to Disk
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);