Надстрочные и подстрочные символы
Управление текстом с надстрочными и подстрочными символами
Вы можете добавлять надстрочные и подстрочные символы в любой части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); | |