Gestionar párrafos de PowerPoint en C++
Aspose.Slides proporciona todas las interfaces y clases que necesita para trabajar con textos, párrafos y porciones de PowerPoint en C++.
- Aspose.Slides proporciona la interfaz ITextFrame para permitirle añadir objetos que representan un párrafo. Un objeto
ITextFrame
puede tener uno o varios párrafos (cada párrafo se crea a través de un salto de línea). - Aspose.Slides proporciona la interfaz IParagraph para permitirle añadir objetos que representan porciones. Un objeto
IParagraph
puede tener una o varias porciones (colección de objetos iPortions). - Aspose.Slides proporciona la interfaz IPortion para permitirle añadir objetos que representan textos y sus propiedades de formato.
Un objeto IParagraph
es capaz de gestionar textos con diferentes propiedades de formato a través de sus objetos subyacentes IPortion
.
Agregar múltiples párrafos que contienen múltiples porciones
Estos pasos le muestran cómo agregar un marco de texto que contiene 3 párrafos y cada párrafo contiene 3 porciones:
- Cree una instancia de la clase Presentation.
- Acceda a la referencia de la diapositiva relevante a través de su índice.
- Agregue una IAutoShape de tipo Rectángulo a la diapositiva.
- Obtenga el ITextFrame asociado con la IAutoShape.
- Cree dos objetos IParagraph y agréguellos a la colección
IParagraphs
del ITextFrame. - Cree tres objetos IPortion para cada nuevo
IParagraph
(dos objetos Portion para el párrafo por defecto) y agregue cada objetoIPortion
a la colección IPortion de cadaIParagraph
. - Establezca algún texto para cada porción.
- Aplique sus características de formato preferidas a cada porción utilizando las propiedades de formato expuestas por el objeto
IPortion
. - Guarde la presentación modificada.
Este código en C++ es una implementación de los pasos para agregar párrafos que contienen porciones:
// La ruta al directorio de documentos.
const String outPath = u"../out/MultipleParagraphs_out.pptx";
// Cargue la presentación deseada
SharedPtr<Presentation> pres = MakeObject<Presentation>();
// Acceda a la primera diapositiva
SharedPtr<ISlide> sld = pres->get_Slides()->idx_get(0);
// Agregue un AutoShape de tipo Rectángulo
SharedPtr<IAutoShape> ashp = sld->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 150, 75, 150, 50);
// Agregue TextFrame al Rectángulo
SharedPtr<ITextFrame> tf=ashp->AddTextFrame(u" ");
// Accediendo al primer párrafo
SharedPtr<IParagraph> para0 = tf->get_Paragraphs()->idx_get(0);
SharedPtr<Portion> port01 = MakeObject<Portion>();
SharedPtr<Portion> port02 = MakeObject<Portion>();
para0->get_Portions()->Add(port01);
para0->get_Portions()->Add(port02);
// Agregando segundo párrafo
SharedPtr<Paragraph> para1 = MakeObject<Paragraph>();
tf->get_Paragraphs()->Add(para1);
SharedPtr<Portion> port10 = MakeObject<Portion>();
SharedPtr<Portion> port11 = MakeObject<Portion>();
SharedPtr<Portion> port12 = MakeObject<Portion>();
para1->get_Portions()->Add(port10);
para1->get_Portions()->Add(port11);
para1->get_Portions()->Add(port12);
// Agregando tercer párrafo
SharedPtr<Paragraph> para2 = MakeObject<Paragraph>();
tf->get_Paragraphs()->Add(para2);
SharedPtr<Portion> port20 = MakeObject<Portion>();
SharedPtr<Portion> port21 = MakeObject<Portion>();
SharedPtr<Portion> port22 = MakeObject<Portion>();
para2->get_Portions()->Add(port20);
para2->get_Portions()->Add(port21);
para2->get_Portions()->Add(port22);
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
tf->get_Paragraphs()->idx_get(i)->get_Portions()->idx_get(j)->set_Text(u"Portion_"+j);
SharedPtr<IPortionFormat>format = tf->get_Paragraphs()->idx_get(i)->get_Portions()->idx_get(j)->get_PortionFormat();
if (j == 0)
{
format->get_FillFormat()->set_FillType(FillType::Solid);
format->get_FillFormat()->get_SolidFillColor()->set_Color(Color::get_Red());
format->set_FontBold(NullableBool::True);
format->set_FontHeight(15);
}
else if (j == 1)
{
format->get_FillFormat()->set_FillType(FillType::Solid);
format->get_FillFormat()->get_SolidFillColor()->set_Color(Color::get_Blue());
format->set_FontBold(NullableBool::True);
format->set_FontHeight(18);
}
}
}
// Guardar PPTX en Disco
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
Gestionar viñetas de párrafo
Las listas con viñetas le ayudan a organizar y presentar información de manera rápida y eficiente. Los párrafos con viñetas son siempre más fáciles de leer y entender.
- Cree una instancia de la clase Presentation.
- Acceda a la referencia de la diapositiva relevante a través de su índice.
- Agregue un autoshape a la diapositiva seleccionada.
- Acceda al TextFrame del autoshape.
- Elimine el párrafo por defecto en el
TextFrame
. - Cree la primera instancia de párrafo utilizando la clase Paragraph.
- Establezca el
Type
de la viñeta para el párrafo aSymbol
y establezca el carácter de viñeta. - Establezca el
Text
del párrafo. - Establezca la
Indent
del párrafo para la viñeta. - Establezca un color para la viñeta.
- Establezca una altura para la viñeta.
- Agregue el nuevo párrafo a la colección de párrafos del
TextFrame
. - Agregue el segundo párrafo y repita el proceso dado en los pasos 7 a 13.
- Guarde la presentación.
Este código C++ le muestra cómo agregar una viñeta de párrafo:
// La ruta al directorio de documentos.
const String outPath = u"../out/ParagraphBullets_out.pptx";
const String templatePath = u"../templates/DefaultFonts.pptx";
const String ImagePath = u"../templates/Tulips.jpg";
// Cargue la presentación deseada
SharedPtr<Presentation> pres = MakeObject<Presentation>();
// Acceda a la primera diapositiva
SharedPtr<ISlide> sld = pres->get_Slides()->idx_get(0);
// Agregue un AutoShape de tipo Rectángulo
SharedPtr<IAutoShape> ashp = sld->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 150, 75, 150, 50);
// Agregue TextFrame al Rectángulo
ashp->AddTextFrame(u"");
// Accediendo al marco de texto
SharedPtr<ITextFrame> txtFrame = ashp->get_TextFrame();
txtFrame->get_Paragraphs()->Clear();
// Cree el objeto Paragraph para el marco de texto
SharedPtr<Paragraph> paragraph = MakeObject<Paragraph>();
//Estableciendo Texto
paragraph->set_Text(u"Bienvenido a Aspose.Slides");
// Estableciendo sangría de viñeta
paragraph->get_ParagraphFormat()->set_Indent (25);
// Estableciendo color de viñeta
paragraph->get_ParagraphFormat()->get_Bullet()->get_Color()->set_ColorType ( ColorType::RGB);
paragraph->get_ParagraphFormat()->get_Bullet()->get_Color()->set_Color(Color::get_Black());
// establecer IsBulletHardColor en verdadero para usar el color de viñeta propio
paragraph->get_ParagraphFormat()->get_Bullet()->set_IsBulletHardColor(NullableBool::True);
// Estableciendo Altura de viñeta
paragraph->get_ParagraphFormat()->get_Bullet()->set_Height(100);
// Agregando párrafo al marco de texto
txtFrame->get_Paragraphs()->Add(paragraph);
// Creando segundo párrafo
// Cree el objeto Paragraph para el marco de texto
SharedPtr<Paragraph> paragraph2 = MakeObject<Paragraph>();
//Estableciendo Texto
paragraph2->set_Text(u"Este es un viñeta numerada");
// Estableciendo tipo y estilo de viñeta del párrafo
paragraph2->get_ParagraphFormat()->get_Bullet()->set_Type ( BulletType::Numbered);
paragraph2->get_ParagraphFormat()->get_Bullet()->set_NumberedBulletStyle ( NumberedBulletStyle::BulletCircleNumWDBlackPlain);
// Estableciendo sangría de viñeta
paragraph2->get_ParagraphFormat()->set_Indent(25);
// Estableciendo color de viñeta
paragraph2->get_ParagraphFormat()->get_Bullet()->get_Color()->set_ColorType(ColorType::RGB);
paragraph2->get_ParagraphFormat()->get_Bullet()->get_Color()->set_Color(Color::get_Black());
// establecer IsBulletHardColor en verdadero para usar el color de viñeta propio
paragraph2->get_ParagraphFormat()->get_Bullet()->set_IsBulletHardColor(NullableBool::True);
// Estableciendo Altura de viñeta
paragraph2->get_ParagraphFormat()->get_Bullet()->set_Height(100);
// Agregando párrafo al marco de texto
txtFrame->get_Paragraphs()->Add(paragraph2);
// Guardar PPTX en Disco
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
Gestionar viñetas de imagen
Las listas con viñetas le ayudan a organizar y presentar información de manera rápida y eficiente. Los párrafos con imágenes son fáciles de leer y entender.
- Cree una instancia de la clase Presentation.
- Acceda a la referencia de la diapositiva relevante a través de su índice.
- Agregue un autoshape a la diapositiva.
- Acceda al TextFrame del autoshape.
- Elimine el párrafo por defecto en el
TextFrame
. - Cree la primera instancia de párrafo utilizando la clase Paragraph.
- Cargue la imagen en IPPImage.
- Establezca el tipo de viñeta a Picture y establezca la imagen.
- Establezca el
Text
del párrafo. - Establezca la
Indent
del párrafo para la viñeta. - Establezca un color para la viñeta.
- Establezca una altura para la viñeta.
- Agregue el nuevo párrafo a la colección de párrafos del
TextFrame
. - Agregue el segundo párrafo y repita el proceso con base en los pasos anteriores.
- Guarde la presentación modificada.
Este código C++ le muestra cómo agregar y gestionar viñetas de imagen:
// Instancia una clase Presentation que representa un archivo PPTX
System::SharedPtr<Presentation> presentation = System::MakeObject<Presentation>();
// Accede a la primera diapositiva
System::SharedPtr<ISlide> slide = presentation->get_Slide(0);
// Instancia la imagen para viñetas
System::SharedPtr<IImage> image = Images::FromFile(u"bullets.png");
System::SharedPtr<IPPImage> ippxImage = presentation->get_Images()->AddImage(image);
// Agrega y accede a Autoshape
System::SharedPtr<IAutoShape> autoShape = slide->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 200.0f, 200.0f, 400.0f, 200.0f);
// Accede al textframe del autoshape
System::SharedPtr<ITextFrame> textFrame = autoShape->get_TextFrame();
// Elimina el párrafo por defecto
System::SharedPtr<IParagraphCollection> paragraphs = textFrame->get_Paragraphs();
paragraphs->RemoveAt(0);
// Crea un nuevo párrafo
System::SharedPtr<Paragraph> paragraph = System::MakeObject<Paragraph>();
paragraph->set_Text(u"Bienvenido a Aspose.Slides");
// Establece el estilo de viñeta del párrafo y la imagen
paragraph->get_ParagraphFormat()->get_Bullet()->set_Type(BulletType::Picture);
paragraph->get_ParagraphFormat()->get_Bullet()->get_Picture()->set_Image(ippxImage);
// Establece la Altura de la viñeta
paragraph->get_ParagraphFormat()->get_Bullet()->set_Height(100.0f);
// Agrega el párrafo al marco de texto
paragraphs->Add(paragraph);
// Escribe la presentación como un archivo PPTX
presentation->Save(u"ParagraphPictureBulletsPPTX_out.pptx", SaveFormat::Pptx);
// Escribe la presentación como un archivo PPT
presentation->Save(u"ParagraphPictureBulletsPPT_out.ppt", SaveFormat::Ppt);
Gestionar viñetas multinivel
Las listas con viñetas le ayudan a organizar y presentar información de manera rápida y eficiente. Las viñetas multinivel son fáciles de leer y entender.
- Cree una instancia de la clase Presentation.
- Acceda a la referencia de la diapositiva relevante a través de su índice.
- Agregue un autoshape en la nueva diapositiva.
- Acceda al TextFrame del autoshape.
- Elimine el párrafo por defecto en el
TextFrame
. - Cree la primera instancia de párrafo a través de la clase Paragraph y establezca la profundidad en 0.
- Cree la segunda instancia de párrafo a través de la clase
Paragraph
y establezca la profundidad en 1. - Cree la tercera instancia de párrafo a través de la clase
Paragraph
y establezca la profundidad en 2. - Cree la cuarta instancia de párrafo a través de la clase
Paragraph
y establezca la profundidad en 3. - Agregue los nuevos párrafos a la colección de párrafos del
TextFrame
. - Guarde la presentación modificada.
Este código C++ le muestra cómo agregar y gestionar viñetas multinivel:
// Instancia una clase Presentation que representa un archivo PPTX
System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>();
// Accede a la primera diapositiva
System::SharedPtr<ISlide> slide = pres->get_Slide(0);
// Agrega y accede a Autoshape
System::SharedPtr<IAutoShape> aShp = slide->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 200.0f, 200.0f, 400.0f, 200.0f);
// Accede al marco de texto del autoshape creado
System::SharedPtr<ITextFrame> text = aShp->AddTextFrame(u"");
// Limpia el párrafo por defecto
text->get_Paragraphs()->Clear();
// Agrega el primer párrafo
System::SharedPtr<IParagraph> para1 = System::MakeObject<Paragraph>();
para1->set_Text(u"Contenido");
System::SharedPtr<IParagraphFormat> para1Format = para1->get_ParagraphFormat();
System::SharedPtr<IBulletFormat> bullet1Format = para1Format->get_Bullet();
bullet1Format->set_Type(BulletType::Symbol);
bullet1Format->set_Char(System::Convert::ToChar(8226));
System::SharedPtr<IFillFormat> defaultFillFormat1 = para1Format->get_DefaultPortionFormat()->get_FillFormat();
defaultFillFormat1->set_FillType(FillType::Solid);
defaultFillFormat1->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Black());
// Establece el nivel de la viñeta
para1Format->set_Depth(0);
// Agrega el segundo párrafo
System::SharedPtr<IParagraph> para2 = System::MakeObject<Paragraph>();
para2->set_Text(u"Segundo Nivel");
System::SharedPtr<IParagraphFormat> para2Format = para2->get_ParagraphFormat();
System::SharedPtr<IBulletFormat> bullet2Format = para2Format->get_Bullet();
bullet2Format->set_Type(BulletType::Symbol);
bullet2Format->set_Char(u'-');
System::SharedPtr<IFillFormat> defaultFillFormat2 = para2Format->get_DefaultPortionFormat()->get_FillFormat();
defaultFillFormat2->set_FillType(FillType::Solid);
defaultFillFormat2->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Black());
// Establece el nivel de la viñeta
para2Format->set_Depth(1);
// Agrega el tercer párrafo
System::SharedPtr<IParagraph> para3 = System::MakeObject<Paragraph>();
para3->set_Text(u"Tercer Nivel");
System::SharedPtr<IParagraphFormat> para3Format = para3->get_ParagraphFormat();
System::SharedPtr<IBulletFormat> bullet3Format = para3Format->get_Bullet();
bullet3Format->set_Type(BulletType::Symbol);
bullet3Format->set_Char(System::Convert::ToChar(8226));
System::SharedPtr<IFillFormat> defaultFillFormat3 = para3Format->get_DefaultPortionFormat()->get_FillFormat();
defaultFillFormat3->set_FillType(FillType::Solid);
defaultFillFormat3->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Black());
// Establece el nivel de la viñeta
para3Format->set_Depth(2);
// Agrega el cuarto párrafo
System::SharedPtr<IParagraph> para4 = System::MakeObject<Paragraph>();
para4->set_Text(u"Cuarto Nivel");
System::SharedPtr<IParagraphFormat> para4Format = para4->get_ParagraphFormat();
System::SharedPtr<IBulletFormat> bullet4Format = para4Format->get_Bullet();
bullet4Format->set_Type(BulletType::Symbol);
bullet4Format->set_Char(u'-');
System::SharedPtr<IFillFormat> defaultFillFormat4 = para4Format->get_DefaultPortionFormat()->get_FillFormat();
defaultFillFormat4->set_FillType(FillType::Solid);
defaultFillFormat4->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Black());
// Establece el nivel de la viñeta
para4Format->set_Depth(3);
// Agrega párrafos a la colección
System::SharedPtr<IParagraphCollection> paragraphs = text->get_Paragraphs();
paragraphs->Add(para1);
paragraphs->Add(para2);
paragraphs->Add(para3);
paragraphs->Add(para4);
// Escribe la presentación como un archivo PPTX
pres->Save(u"MultilevelBullet.pptx", SaveFormat::Pptx);
Gestionar párrafo con lista numerada personalizada
La interfaz IBulletFormat proporciona la propiedad NumberedBulletStartWith y otras que le permiten gestionar párrafos con numeración o formato personalizado.
- Cree una instancia de la clase Presentation.
- Acceda a la diapositiva que contiene el párrafo.
- Agregue un autoshape a la diapositiva.
- Acceda al TextFrame del autoshape.
- Elimine el párrafo por defecto en el
TextFrame
. - Cree la primera instancia de párrafo a través de la clase Paragraph y establezca NumberedBulletStartWith a 2.
- Cree la segunda instancia de párrafo a través de la clase
Paragraph
y establezcaNumberedBulletStartWith
a 3. - Cree la tercera instancia de párrafo a través de la clase
Paragraph
y establezcaNumberedBulletStartWith
a 7. - Agregue los nuevos párrafos a la colección de párrafos del
TextFrame
. - Guarde la presentación modificada.
Este código C++ le muestra cómo agregar y gestionar párrafos con numeración o formato personalizado:
auto presentation = System::MakeObject<Presentation>();
auto shape = presentation->get_Slide(0)->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 200.0f, 200.0f, 400.0f, 200.0f);
// Accede al marco de texto del autoshape creado
System::SharedPtr<ITextFrame> textFrame = shape->get_TextFrame();
// Elimina el párrafo existente por defecto
textFrame->get_Paragraphs()->RemoveAt(0);
// Primer lista
auto paragraph1 = System::MakeObject<Paragraph>();
paragraph1->set_Text(u"viñeta 2");
auto paragraph1Format = paragraph1->get_ParagraphFormat();
paragraph1Format->set_Depth(4);
auto bullet1Format = paragraph1Format->get_Bullet();
bullet1Format->set_NumberedBulletStartWith(2);
bullet1Format->set_Type(BulletType::Numbered);
textFrame->get_Paragraphs()->Add(paragraph1);
auto paragraph2 = System::MakeObject<Paragraph>();
paragraph2->set_Text(u"viñeta 3");
auto paragraph2Format = paragraph2->get_ParagraphFormat();
paragraph2Format->set_Depth(4);
auto bullet2Format = paragraph2Format->get_Bullet();
bullet2Format->set_NumberedBulletStartWith(3);
bullet2Format->set_Type(BulletType::Numbered);
textFrame->get_Paragraphs()->Add(paragraph2);
auto paragraph5 = System::MakeObject<Paragraph>();
paragraph5->set_Text(u"viñeta 7");
auto paragraph5Format = paragraph5->get_ParagraphFormat();
paragraph5Format->set_Depth(4);
auto bullet5Format = paragraph5Format->get_Bullet();
bullet5Format->set_NumberedBulletStartWith(7);
bullet5Format->set_Type(BulletType::Numbered);
textFrame->get_Paragraphs()->Add(paragraph5);
presentation->Save(u"SetCustomBulletsNumber-slides.pptx", SaveFormat::Pptx);
Establecer sangría de párrafo
- Cree una instancia de la clase Presentation.
- Acceda a la referencia de la diapositiva relevante a través de su índice.
- Agregue un autoshape de rectángulo a la diapositiva.
- Agregue un TextFrame con tres párrafos al autoshape de rectángulo.
- Oculte las líneas del rectángulo.
- Establezca la sangría para cada Paragraph a través de su propiedad BulletOffset.
- Escriba la presentación modificada como un archivo PPT.
Este código C++ le muestra cómo establecer una sangría de párrafo:
// La ruta al directorio de documentos.
const String outPath = u"../out/AddingSuperscriptAndSubscriptTextInTextFrame_out.pptx";
//const String templatePath = u"../templates/DefaultFonts.pptx";
// Cargue la presentación deseada
SharedPtr<Presentation> pres = MakeObject<Presentation>();
// Acceda a la primera diapositiva
SharedPtr<ISlide> sld = pres->get_Slides()->idx_get(0);
// Agregue un AutoShape de tipo Rectángulo
SharedPtr<IAutoShape> ashp = sld->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 100, 100, 300, 300);
// Agregue TextFrame al Rectángulo
SharedPtr<ITextFrame> tf = ashp->AddTextFrame(String::Empty);
tf->get_Paragraphs()->Clear();
// Agregando el primer párrafo
SharedPtr<Paragraph> superPar = MakeObject<Paragraph>();
SharedPtr<Portion> portion1 = MakeObject<Portion>(u"Título de la diapositiva");
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);
// Agregando el primer párrafo
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);
// Agregando al marco de texto
ashp->get_TextFrame()->get_Paragraphs()->Add(superPar);
ashp->get_TextFrame()->get_Paragraphs()->Add(subPar);
// Guardar PPTX en Disco
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
Establecer sangría colgante para el párrafo
Este código C++ le muestra cómo establecer la sangría colgante para un párrafo:
System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>();
auto autoShape = pres->get_Slide(0)->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 50.0f, 250.0f, 550.0f, 150.0f);
System::SharedPtr<Paragraph> para1 = System::MakeObject<Paragraph>();
para1->set_Text(u"Ejemplo");
System::SharedPtr<Paragraph> para2 = System::MakeObject<Paragraph>();
para2->set_Text(u"Establecer sangría colgante para el párrafo");
System::SharedPtr<Paragraph> para3 = System::MakeObject<Paragraph>();
para3->set_Text(u"Este código C++ le muestra cómo establecer la sangría colgante para un párrafo:");
para2->get_ParagraphFormat()->set_MarginLeft(10.f);
para3->get_ParagraphFormat()->set_MarginLeft(20.f);
auto paragraphs = autoShape->get_TextFrame()->get_Paragraphs();
paragraphs->Add(para1);
paragraphs->Add(para2);
paragraphs->Add(para3);
pres->Save(u"pres.pptx", SaveFormat::Pptx);
Gestionar propiedades de impresión final para el párrafo
- Cree una instancia de la clase Presentation .
- Obtenga la referencia para la diapositiva que contiene el párrafo a través de su posición.
- Agregue un autoshape a la diapositiva.
- Agregue un TextFrame con dos párrafos al Rectángulo.
- Establezca la
FontHeight
y el tipo de fuente para los párrafos. - Establezca las propiedades finales para los párrafos.
- Escriba la presentación modificada como un archivo PPTX.
Este código C++ le muestra cómo establecer las propiedades finales para los párrafos en PowerPoint:
// La ruta al directorio de documentos.
const String outPath = u"../out/EndParaGraphProperties_out.pptx";
//const String templatePath = u"../templates/DefaultFonts.pptx";
// Cargue la presentación deseada
SharedPtr<Presentation> pres = MakeObject<Presentation>();
// Acceda a la primera diapositiva
SharedPtr<ISlide> sld = pres->get_Slides()->idx_get(0);
// Agregue un AutoShape de tipo Rectángulo
SharedPtr<IAutoShape> ashp = sld->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 100, 100, 300, 300);
// Agregue TextFrame al Rectángulo
SharedPtr<ITextFrame> tf = ashp->AddTextFrame(String::Empty);
// Agregando el primer párrafo
//SharedPtr<IParagraph> para1 = tf->get_Paragraphs()->idx_get(0);
SharedPtr<Paragraph> para1 = MakeObject<Paragraph>();
SharedPtr<Portion> port01 = MakeObject<Portion>(u"Texto de ejemplo");
para1->get_Portions()->Add(port01);
// Agregando el segundo párrafo
SharedPtr<Paragraph> para2 = MakeObject<Paragraph>();
SharedPtr<Portion> port02 = MakeObject<Portion>(u"Texto de ejemplo 2");
para2->get_Portions()->Add(port02);
SharedPtr<PortionFormat> endParagraphPortionFormat = MakeObject< PortionFormat>();
endParagraphPortionFormat->set_FontHeight ( 48);
endParagraphPortionFormat->set_LatinFont ( MakeObject< FontData>(u"Times New Roman"));
para2->set_EndParagraphPortionFormat(endParagraphPortionFormat);
ashp->get_TextFrame()->get_Paragraphs()->Add(para1);
ashp->get_TextFrame()->get_Paragraphs()->Add(para2);
// Guardar PPTX en Disco
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
Importar texto HTML en párrafos
Aspose.Slides proporciona soporte mejorado para importar texto HTML en párrafos.
- Cree una instancia de la clase Presentation .
- Acceda a la referencia de la diapositiva relevante a través de su índice.
- Agregue un autoshape a la diapositiva.
- Agregue y acceda al
autoshape
ITextFrame - Elimine el párrafo por defecto en el
ITextFrame
. - Lea el archivo HTML fuente en un TextReader.
- Cree la primera instancia de párrafo a través de la clase Paragraph .
- Agregue el contenido del archivo HTML leído en el TextReader a la colección ParagraphCollection del TextFrame.
- Guarde la presentación modificada.
Este código C++ es una implementación de los pasos para importar textos HTML en párrafos:
For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
// La ruta al directorio de documentos.
const String outPath = u"../out/ImportingHTMLText_out.pptx";
const String sampleHtml = u"../templates/file.html";
// Cargue la presentación deseada
SharedPtr<Presentation> pres = MakeObject<Presentation>();
// Acceda a la primera diapositiva
SharedPtr<ISlide> sld = pres->get_Slides()->idx_get(0);
// Agregue un AutoShape de tipo Rectángulo
SharedPtr<IAutoShape> ashp = sld->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 10, 10, 700, 500);
// Restableciendo el color de relleno por defecto
ashp->get_FillFormat()->set_FillType(FillType::NoFill);
// Agregue TextFrame al Rectángulo
ashp->AddTextFrame(u" ");
// Accediendo al marco de texto
SharedPtr<ITextFrame> txtFrame = ashp->get_TextFrame();
// Obtener la colección de párrafos
SharedPtr<Aspose::Slides::IParagraphCollection>ParaCollection = txtFrame->get_Paragraphs();
// Limpiar todos los párrafos en el marco de texto agregado
ParaCollection->Clear();
// Cargar el archivo HTML usando un lector de flujos
SharedPtr<System::IO::StreamReader> tr = MakeObject<System::IO::StreamReader>(sampleHtml);
// Agregar texto del lector de flujo HTML en el marco de texto
ParaCollection->AddFromHtml(tr->ReadToEnd());
// Crear el objeto Paragraph para el marco de texto
SharedPtr<IParagraph> paragraph = txtFrame->get_Paragraphs()->idx_get(0);
// Crear el objeto Portion para el párrafo
SharedPtr<IPortion> portion = paragraph->get_Portions()->idx_get(0);
portion->set_Text(u"Texto de Aspose");
// Obtener formato de porción
SharedPtr<IPortionFormat> pf = portion->get_PortionFormat();
// Establecer la fuente para la porción
pf->set_LatinFont(MakeObject<FontData>(u"Times New Roman"));
// Establecer la propiedad negrita de la fuente
pf->set_FontBold(NullableBool::True);
// Establecer la propiedad cursiva de la fuente
pf->set_FontItalic(NullableBool::True);
// Establecer la propiedad subrayado de la fuente
pf->set_FontUnderline(TextUnderlineType::Single);
// Establecer la altura de la fuente
pf->set_FontHeight(25);
// Establecer el color de la fuente
pf->get_FillFormat()->set_FillType(FillType::Solid);
pf->get_FillFormat()->get_SolidFillColor()->set_Color(Color::get_Blue());
// Guardar PPTX en Disco
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
Exportar texto de párrafos a HTML
Aspose.Slides proporciona soporte mejorado para exportar textos (contenidos en párrafos) a HTML.
- Cree una instancia de la clase Presentation y cargue la presentación deseada.
- Acceda a la referencia de la diapositiva relevante a través de su índice.
- Acceda a la forma que contiene el texto que será exportado a HTML.
- Acceda al TextFrame de la forma.
- Cree una instancia de
StreamWriter
y agregue el nuevo archivo HTML. - Proporcione un índice inicial al StreamWriter y exporte sus párrafos preferidos.
Este código C++ le muestra cómo exportar textos de párrafos de PowerPoint a HTML:
For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
// La ruta al directorio de documentos.
const String outPath = u"../out/output.html";
const String tempplatePath = u"../templates/DefaultFonts.pptx";
// Cargue la presentación deseada
SharedPtr<Presentation> pres = MakeObject<Presentation>(tempplatePath);
// Acceder a la primera diapositiva por defecto de la presentación
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);
// Índice deseado
int index = 0;
// Accediendo a la forma agregada
SharedPtr<IShape> shape = slide->get_Shapes()->idx_get(0);
SharedPtr<AutoShape> ashape = DynamicCast<Aspose::Slides::AutoShape>(shape);
// Extrayendo el primer párrafo como HTML
SharedPtr<System::IO::StreamWriter> sw = MakeObject<System::IO::StreamWriter>(outPath, false, Encoding::get_UTF8());
// System::IO::StreamWriter^ sr = gcnew System::IO::StreamWriter("TestFile.txt", false, Encoding::get_UTF8());
//Escribir datos de párrafos en HTML proporcionando el índice inicial del párrafo, el total de párrafos a copiar
sw->Write(ashape->get_TextFrame()->get_Paragraphs()->ExportToHtml(0, ashape->get_TextFrame()->get_Paragraphs()->get_Count(), nullptr));
sw->Close();