As is shown in the following presentation slide, shapes automatically stack in separate layers as you add them. To change the order of overlapping shapes, we can move the layers forward and backward. But how can we achieve this task programmatically using C# or VB.NET? This article is aimed to present you a solution on how to reorder overlapping shapes using Spire.Presentation.
In the early edition, Spire.Presentation is already capable of adding different kinds of shapes to the slides, setting color and fill style of the shape. In the Version2.0.18, we add reordering overlapping shapes as a new feature to satisfy our customer’s demands. Now, let’s see how to make it happen with sample code snippet.
Step 1: Create a new instance of Spire.Presentation class and load the test file.
Spire.Presentation.Presentation presentation = new Presentation(); presentation.LoadFromFile("..\\..\\test.pptx");
Step 2: Get the first shape from the slide.
IShape shape = presentation.Slides[0].Shapes[0];
Step 3: Change the shape's Zorder by setting its position index.
presentation.Slides[0].Shapes.ZOrder(1, shape);
Step 4: Save to a PPTX file and launch the file.
string output = "output.pptx"; presentation.SaveToFile(output,FileFormat.Pptx2010); System.Diagnostics.Process.Start(output);
Output:
Full code:
using Spire.Presentation; namespace ReorderOverlappingShape { class Program { static void Main(string[] args) { //Create an instance of Spire.Presentation Spire.Presentation.Presentation presentation = new Presentation(); //Load a pptx file presentation.LoadFromFile("..\\..\\test.pptx"); //Get the first shape of the first slide IShape shape = presentation.Slides[0].Shapes[0]; //Change the shape's zorder presentation.Slides[0].Shapes.ZOrder(1, shape); //Save to a pptx2010 file. string output = "output.pptx"; presentation.SaveToFile(output, FileFormat.Pptx2010); //Launch the output file System.Diagnostics.Process.Start(output); } } }
Imports Spire.Presentation Namespace ReorderOverlappingShape Class Program Private Shared Sub Main(args As String()) 'Create an instance of Spire.Presentation Dim presentation As Spire.Presentation.Presentation = New Presentation() 'Load a pptx file presentation.LoadFromFile("..\..\test.pptx") 'Get the first shape of the first slide Dim shape As IShape = presentation.Slides(0).Shapes(0) 'Change the shape's zorder presentation.Slides(0).Shapes.ZOrder(1, shape) 'Save to a pptx2010 file. Dim output As String = "output.pptx" presentation.SaveToFile(output, FileFormat.Pptx2010) 'Launch the output file System.Diagnostics.Process.Start(output) End Sub End Class End Namespace