Superíndice y Subíndice
Gestionar Texto de Superíndice y Subíndice
Puedes agregar texto de superíndice y subíndice dentro de cualquier parte del párrafo. Para agregar texto de superíndice o subíndice en el marco de texto de Aspose.Slides, uno debe usar las propiedades de Escapement de la clase PortionFormat.
Esta propiedad devuelve o establece el texto de superíndice o subíndice (valor de -100% (subíndice) a 100% (superíndice). Por ejemplo:
- Crea una instancia de la clase Presentation.
- Obtén la referencia de una diapositiva utilizando su índice.
- Agrega una IAutoShape de tipo Rectángulo a la diapositiva.
- Accede al ITextFrame asociado con la IAutoShape.
- Limpia los párrafos existentes.
- Crea un nuevo objeto de párrafo para contener texto de superíndice y agrégalo a la colección de IParagraphs del ITextFrame.
- Crea un nuevo objeto de porción.
- Establece la propiedad de Escapement para la porción entre 0 y 100 para agregar superíndice. (0 significa sin superíndice)
- Establece un texto para la Porción y luego agrégalo a la colección de porciones del párrafo.
- Crea un nuevo objeto de párrafo para contener texto de subíndice y agrégalo a la colección de IParagraphs del ITextFrame.
- Crea un nuevo objeto de porción.
- Establece la propiedad de Escapement para la porción entre 0 y -100 para agregar subíndice. (0 significa sin subíndice)
- Establece un texto para la Porción y luego agrégalo a la colección de porciones del párrafo.
- Guarda la presentación como un archivo PPTX.
La implementación de los pasos anteriores se da a continuación.
// 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); | |