Trabajar con formas en diapositivas en C#.jpg

Las formas son una excelente manera de hacer que sus presentaciones de PowerPoint sean más elaboradas y atractivas. PowerPoint proporciona una amplia gama de formas que puede agregar a las diapositivas de su presentación, es decir, elipses, líneas, rectángulos, conectores, etc. Para automatizar esta característica, este artículo cubre cómo agregar, clonar y eliminar formas en diapositivas de PowerPoint mediante programación usando C#.

API de C# para trabajar con formas de PowerPoint

Aspose.Slides for .NET es una API de C# que está diseñada para trabajar con presentaciones de PowerPoint desde aplicaciones .NET. Junto con otras funciones de manipulación de presentaciones, la API proporciona formas sencillas de trabajar con formas en las diapositivas de PowerPoint. Puede descargar la DLL de la API o instalarla a través de NuGet.

Install-Package Aspose.Slides.NET

Formas de PowerPoint

Aspose.Slides for .NET admite una amplia gama de tipos de formas que puede agregar a las diapositivas de PowerPoint. Las formas más utilizadas incluyen:

Agregue una forma a las diapositivas de PowerPoint usando C#

Para agregar una forma, es decir, una elipse, una línea, un rectángulo, etc., Aspose.Slides proporciona el método IShapeCollection.AddAutoShape(ShapeType, Single, Single, Single, Single). La enumeración ShapeType le permite especificar el tipo de forma que desea agregar. Los siguientes son los pasos para agregar una forma a una diapositiva de PowerPoint.

El siguiente ejemplo de código muestra cómo agregar una forma a una diapositiva de PowerPoint usando C#.

// Cree una instancia de un objeto Presentation que represente un archivo de presentación
using (Presentation pres = new Presentation("presentation.pptx"))
{
    // Obtener la primera diapositiva
    ISlide sld = pres.Slides[0];

    // Agregar autoforma de tipo elipse
    sld.Shapes.AddAutoShape(ShapeType.Ellipse, 50, 150, 150, 50);

    // Guardar presentación
    pres.Save("presentation.pptx", Export.SaveFormat.Pptx);
}

Agregar conector para conectar formas de PowerPoint en C#

Un conector es una línea que se utiliza para conectar formas con el fin de unirlas. Un conector puede ser una línea recta o curva. Veamos cómo agregar un conector entre dos formas en una diapositiva de PowerPoint.

  1. Cree una instancia de la clase Presentation para crear una nueva presentación.
  2. Obtenga la referencia de una diapositiva usando Presentation.Slides[index] en el objeto ISlide.
  3. Agregue dos formas tal como las agregó en el ejemplo anterior y obtenga sus referencias en los objetos IAutoShape.
  4. Cree un nuevo objeto IConnector usando el método IShapeCollection.AddConnector(ShapeType, Single, Single, Single, Single).
  5. Une las formas usando las propiedades IConnector.StartShapeConnectedTo y IConnector.EndShapeConnectedTo.
  6. Llame al método IConnector.Reroute() para crear la ruta de conexión automática más corta.
  7. Guarde el archivo PPTX utilizando el método Presentation.Save(String, SaveFormat).

El siguiente ejemplo de código muestra cómo conectar formas en una diapositiva de PowerPoint usando C#.

// Cree una instancia de un objeto Presentation que represente un archivo de presentación
using (Presentation pres = new Presentation("presentation.pptx"))
{
    // Acceso a la colección de formas para la diapositiva seleccionada
    IShapeCollection shapes = pres.Slides[0].Shapes;

    // Agregar autoforma Elipse
    IAutoShape ellipse = shapes.AddAutoShape(ShapeType.Ellipse, 0, 100, 100, 100);

    // Añadir autoforma Rectángulo
    IAutoShape rectangle = shapes.AddAutoShape(ShapeType.Rectangle, 100, 300, 100, 100);

    // Agregar forma de conector a la colección de formas de diapositivas
    IConnector connector = shapes.AddConnector(ShapeType.BentConnector2, 0, 0, 10, 10);

    // Unir formas a conectores
    connector.StartShapeConnectedTo = ellipse;
    connector.EndShapeConnectedTo = rectangle;

    // Redirección de llamadas para establecer la ruta más corta automática entre formas
    connector.Reroute();

    // Guardar presentación
    pres.Save("presentation.pptx", Export.SaveFormat.Pptx);
}

Clonar formas en diapositivas de PowerPoint usando C#

También puede clonar formas de una diapositiva de PowerPoint a otra usando Aspose.Slides for .NET. Los siguientes son los pasos para realizar esta operación.

  1. Cree una instancia de la clase Presentation.
  2. Obtenga la referencia de una diapositiva usando Presentation.Slides[index] en el objeto ISlide.
  3. Acceda a las formas de las diapositivas de origen usando la colección ISlide.Shapes.
  4. Acceda a las formas de las diapositivas de destino usando la colección ISlide.Shapes.
  5. Clone formas de la colección de formas de la diapositiva de origen a la diapositiva de destino usando el método IShapeCollection.AddClone(ISlide).
  6. Guarde el archivo de presentación actualizado.

El siguiente ejemplo de código muestra cómo clonar formas dentro de diapositivas de PowerPoint usando C#.

// Cree una instancia de un objeto Presentation que represente un archivo de presentación
using (Presentation pres = new Presentation("presentation.pptx"))
{
    // Obtener la colección de formas de la diapositiva de origen
    IShapeCollection sourceShapes = pres.Slides[0].Shapes;
    ILayoutSlide blankLayout = pres.Masters[0].LayoutSlides.GetByType(SlideLayoutType.Blank);
    ISlide destSlide = pres.Slides.AddEmptySlide(blankLayout);
    
    // Obtener la colección de formas de la diapositiva de destino
    IShapeCollection destShapes = destSlide.Shapes;
    destShapes.AddClone(sourceShapes[1], 50, 150 + sourceShapes[0].Height);
    destShapes.AddClone(sourceShapes[2]);
    
    // forma de clon
    destShapes.InsertClone(0, sourceShapes[0], 50, 150);

    // Guardar presentación
    pres.Save("presentation.pptx", Export.SaveFormat.Pptx);
}

Eliminar formas de las diapositivas de PowerPoint con C#

Los siguientes son los pasos para eliminar formas de una diapositiva de PowerPoint.

  1. Cree una instancia de la clase Presentation para cargar el archivo PPTX.
  2. Acceda a la diapositiva deseada desde Presentation.Slides[index] al objeto ISlide.
  3. Encuentre la forma con un IShape.AlternativeText específico.
  4. Elimina la forma usando el método ISlide.Shapes.Remove(IShape).
  5. Guarde el archivo de presentación actualizado.

El siguiente ejemplo de código muestra cómo quitar formas de una diapositiva de PowerPoint usando C#.

// Cree una instancia de un objeto Presentation que represente un archivo de presentación
using (Presentation pres = new Presentation("presentation.pptx"))
{
    // Obtener la primera diapositiva
    ISlide sld = pres.Slides[0];

    // Agregar autoforma de tipo rectángulo
    IShape shp1 = sld.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 40, 150, 50);
    IShape shp2 = sld.Shapes.AddAutoShape(ShapeType.Moon, 160, 40, 150, 50);
    
    String alttext = "User Defined";
    int iCount = sld.Shapes.Count;
    for (int i = 0; i < iCount; i++)
    {
        // recuperar forma
        AutoShape ashp = (AutoShape)sld.Shapes[0];
        if (String.Compare(ashp.AlternativeText, alttext, StringComparison.Ordinal) == 0)
        {
            // Quitar forma
            sld.Shapes.Remove(ashp);
        }
    }

    // Guardar presentación
    pres.Save("presentation.pptx", Export.SaveFormat.Pptx);
}

Conclusión

MS PowerPoint le permite usar varios tipos de formas para hacer que sus diapositivas sean más elaboradas. Puede usar elipses, rectángulos, líneas, etc. para dibujar sus formas y conectores para unirlas. Con la ayuda de pasos y ejemplos de código, este artículo cubre cómo agregar, clonar y eliminar formas en diapositivas de PowerPoint mediante programación usando C#. En caso de que desee explorar más sobre la API, puede visitar la documentación.

Ver también