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);