Trabalhar com formas em slides em C#.jpg

As formas são uma ótima maneira de tornar suas apresentações do PowerPoint mais elaboradas e atraentes. O PowerPoint oferece uma ampla variedade de formas que você pode adicionar aos slides da sua apresentação, ou seja, elipses, linhas, retângulos, conectores e assim por diante. Para automatizar esse recurso, este artigo aborda como adicionar, clonar e remover formas em slides do PowerPoint programaticamente usando C#.

API C# para trabalhar com formas do PowerPoint

Aspose.Slides for .NET é uma API C# projetada para trabalhar com apresentações do PowerPoint de dentro dos aplicativos .NET. Juntamente com outros recursos de manipulação de apresentações, a API oferece maneiras fáceis de trabalhar com formas em slides do PowerPoint. Você pode baixar a API DLL ou instalá-la via NuGet.

Install-Package Aspose.Slides.NET

Formas do PowerPoint

Aspose.Slides para .NET suporta uma ampla variedade de tipos de formas que você pode adicionar aos slides do PowerPoint. As formas mais usadas incluem:

Adicionar uma forma aos slides do PowerPoint usando C#

Para adicionar uma forma ou seja, elipse, linha, retângulo, etc., o Aspose.Slides fornece o método IShapeCollection.AddAutoShape(ShapeType, Single, Single, Single, Single). A enumeração ShapeType permite especificar o tipo de forma que você deseja adicionar. A seguir estão as etapas para adicionar uma forma a um slide do PowerPoint.

O exemplo de código a seguir mostra como adicionar uma forma em um slide do PowerPoint usando C#.

// Instanciar um objeto Presentation que representa um arquivo de apresentação
using (Presentation pres = new Presentation("presentation.pptx"))
{
    // Obter o primeiro slide
    ISlide sld = pres.Slides[0];

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

    // Salvar apresentação
    pres.Save("presentation.pptx", Export.SaveFormat.Pptx);
}

Adicionar conector para conectar formas do PowerPoint em C#

Um conector é uma linha que é usada para conectar formas para juntá-las. Um conector pode ser uma linha reta ou curva. Vamos ver como adicionar um conector entre duas formas em um slide do PowerPoint.

  1. Crie uma instância da classe Apresentação para criar uma nova apresentação.
  2. Obtenha a referência de um slide usando Presentation.Slides[index] no objeto ISlide.
  3. Adicione duas formas exatamente como você adicionou no exemplo anterior e obtenha suas referências em objetos IAutoShape.
  4. Crie um novo objeto IConnector usando o método IShapeCollection.AddConnector(ShapeType, Single, Single, Single, Single).
  5. Junte as formas usando as propriedades IConnector.StartShapeConnectedTo e IConnector.EndShapeConnectedTo.
  6. Chame o método IConnector.Reroute() para criar o caminho de conexão automática mais curto.
  7. Salve o arquivo PPTX usando o método Presentation.Save(String, SaveFormat).

O exemplo de código a seguir mostra como conectar formas em um slide do PowerPoint usando C#.

// Instanciar um objeto Presentation que representa um arquivo de apresentação
using (Presentation pres = new Presentation("presentation.pptx"))
{
    // Acessando a coleção de formas para o slide selecionado
    IShapeCollection shapes = pres.Slides[0].Shapes;

    // Adicionar elipse de forma automática
    IAutoShape ellipse = shapes.AddAutoShape(ShapeType.Ellipse, 0, 100, 100, 100);

    // Adicionar retângulo de forma automática
    IAutoShape rectangle = shapes.AddAutoShape(ShapeType.Rectangle, 100, 300, 100, 100);

    // Adicionando forma de conector à coleção de formas de slide
    IConnector connector = shapes.AddConnector(ShapeType.BentConnector2, 0, 0, 10, 10);

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

    // Chame o redirecionamento para definir o caminho mais curto automático entre as formas
    connector.Reroute();

    // Salvar apresentação
    pres.Save("presentation.pptx", Export.SaveFormat.Pptx);
}

Clonar formas em slides do PowerPoint usando C#

Você também pode clonar formas de um slide do PowerPoint para outro usando o Aspose.Slides para .NET. A seguir estão as etapas para realizar esta operação.

  1. Crie uma instância da classe Apresentação.
  2. Obtenha a referência de um slide usando Presentation.Slides[index] no objeto ISlide.
  3. Acesse as formas de slide de origem usando a coleção ISlide.Shapes.
  4. Acesse as formas de slide de destino usando a coleção ISlide.Shapes.
  5. Clone formas da coleção de formas de slide de origem para o slide de destino usando o método IShapeCollection.AddClone(ISlide).
  6. Salve o arquivo de apresentação atualizado.

O exemplo de código a seguir mostra como clonar formas em slides do PowerPoint usando C#.

// Instanciar um objeto Presentation que representa um arquivo de apresentação
using (Presentation pres = new Presentation("presentation.pptx"))
{
    // Obter coleção de formas do slide de origem
    IShapeCollection sourceShapes = pres.Slides[0].Shapes;
    ILayoutSlide blankLayout = pres.Masters[0].LayoutSlides.GetByType(SlideLayoutType.Blank);
    ISlide destSlide = pres.Slides.AddEmptySlide(blankLayout);
    
    // Obter coleção de formas do slide de destino
    IShapeCollection destShapes = destSlide.Shapes;
    destShapes.AddClone(sourceShapes[1], 50, 150 + sourceShapes[0].Height);
    destShapes.AddClone(sourceShapes[2]);
    
    // Forma de clone
    destShapes.InsertClone(0, sourceShapes[0], 50, 150);

    // Salvar apresentação
    pres.Save("presentation.pptx", Export.SaveFormat.Pptx);
}

Remover formas de slides do PowerPoint usando C#

A seguir estão as etapas para remover formas de um slide do PowerPoint.

  1. Crie uma instância da classe Apresentação para carregar o arquivo PPTX.
  2. Acesse o slide desejado de Apresentação.Slides[índice] no objeto ISlide.
  3. Encontre a forma com um IShape.AlternativeText específico.
  4. Remova a forma usando o método ISlide.Shapes.Remove(IShape).
  5. Salve o arquivo de apresentação atualizado.

O exemplo de código a seguir mostra como remover formas de um slide do PowerPoint usando C#.

// Instanciar um objeto Presentation que representa um arquivo de apresentação
using (Presentation pres = new Presentation("presentation.pptx"))
{
    // Obter o primeiro slide
    ISlide sld = pres.Slides[0];

    // Adicionar forma automática do tipo retâ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)
        {
            // Remover forma
            sld.Shapes.Remove(ashp);
        }
    }

    // Salvar apresentação
    pres.Save("presentation.pptx", Export.SaveFormat.Pptx);
}

Conclusão

O MS PowerPoint permite que você use vários tipos de formas para tornar seus slides mais elaborados. Você pode usar elipses, retângulos, linhas, etc. para desenhar suas formas e conectores para juntá-los. Com a ajuda de etapas e exemplos de código, este artigo abordou como adicionar, clonar e remover formas em slides do PowerPoint programaticamente usando C#. Caso queira explorar mais sobre a API, você pode visitar a documentação.

Veja também