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
- Tipos de formas do PowerPoint
- Adicionar forma aos slides do PowerPoint
- Adicionar conector a formas em slides do PowerPoint
- Clonar uma forma em slides do PowerPoint
- Remover formas de slides do PowerPoint
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.
- Crie uma instância da classe Apresentação para criar uma nova apresentação ou carregar uma já existente.
- Obtenha a referência de um slide usando Presentation.Slides[index] no objeto ISlide.
- Adicione uma elipse (ou qualquer outra forma) usando o método IShapeCollection.AddAutoShape(ShapeType, Single, Single, Single, Single) exposto pelo objeto IShapes.
- Salve o arquivo PPTX usando o método Presentation.Save(String, SaveFormat).
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.
- Crie uma instância da classe Apresentação para criar uma nova apresentação.
- Obtenha a referência de um slide usando Presentation.Slides[index] no objeto ISlide.
- Adicione duas formas exatamente como você adicionou no exemplo anterior e obtenha suas referências em objetos IAutoShape.
- Crie um novo objeto IConnector usando o método IShapeCollection.AddConnector(ShapeType, Single, Single, Single, Single).
- Junte as formas usando as propriedades IConnector.StartShapeConnectedTo e IConnector.EndShapeConnectedTo.
- Chame o método IConnector.Reroute() para criar o caminho de conexão automática mais curto.
- 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.
- Crie uma instância da classe Apresentação.
- Obtenha a referência de um slide usando Presentation.Slides[index] no objeto ISlide.
- Acesse as formas de slide de origem usando a coleção ISlide.Shapes.
- Acesse as formas de slide de destino usando a coleção ISlide.Shapes.
- Clone formas da coleção de formas de slide de origem para o slide de destino usando o método IShapeCollection.AddClone(ISlide).
- 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.
- Crie uma instância da classe Apresentação para carregar o arquivo PPTX.
- Acesse o slide desejado de Apresentação.Slides[índice] no objeto ISlide.
- Encontre a forma com um IShape.AlternativeText específico.
- Remova a forma usando o método ISlide.Shapes.Remove(IShape).
- 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.