Slide Master in PowerPoint presentations is a powerful feature that lies at the heart of designing consistent and professional-looking slideshows. It's essentially a blueprint or a template that controls the overall design and layout of the slides, allowing users to establish uniformity across presentations without having to manually format each slide individually. In this article, we will explore how to harness the power of Spire.Presentation for Python to create, modify, and apply slide masters in PowerPoint presentations within Python programs.
- Create and Apply Slide Masters in PowerPoint Presentations
- Modify Slide Masters in PowerPoint Presentations
- Copy Slide Masters Between PowerPoint Presentations
Install Spire.Presentation for Python
This scenario requires Spire.Presentation for Python and plum-dispatch v1.7.4. They can be easily installed in your Windows through the following pip command.
pip install Spire.Presentation
If you are unsure how to install, please refer to: How to Install Spire.Presentation for Python on Windows
Create and Apply Slide Masters in PowerPoint Presentations
Every PowerPoint presentation in PowerPoint, regardless of whether it is newly created or not, will have at least one slide master. Developers can modify the default master or create new ones and apply them to slides with Spire.Presentation for Python to achieve a consistent style and content layout across the presentation.
The detailed steps for creating new slide masters and applying them to the slides in a presentation file are as follows:
- Create an object of Presentation class and load a PowerPoint presentation using Presentation.LoadFromFile() method.
- Create slide masters using Presentation.Masters.AppendSlide() method.
- Use the methods under IMasterSlide class to set the backgrounds, customize color schemes, insert images, shapes, and text, etc.
- Apply the slide masters to specific slides through ISlide.Layout property.
- Save the presentation using Presentation.SaveToFile() method.
- Python
from spire.presentation.common import * from spire.presentation import * # Create an instance of Presentation class pres = Presentation() # Load a Presentation file pres.LoadFromFile("Sample.pptx") # Add a cover slide master and a body slide master master1 = pres.Masters.AppendSlide(pres.Masters.get_Item(0)) coverMaster = pres.Masters.get_Item(master1) master2 = pres.Masters.AppendSlide(pres.Masters.get_Item(0)) bodyMaster = pres.Masters.get_Item(master2) # Set background images for the two slide masters pic1 = "Background1.jpg" pic2 = "Background2.jpg" rect = RectangleF.FromLTRB (0, 0, pres.SlideSize.Size.Width, pres.SlideSize.Size.Height) coverMaster.SlideBackground.Fill.FillType = FillFormatType.Picture image1 = coverMaster.Shapes.AppendEmbedImageByPath (ShapeType.Rectangle, pic1, rect) coverMaster.SlideBackground.Fill.PictureFill.Picture.EmbedImage = image1.PictureFill.Picture.EmbedImage bodyMaster.SlideBackground.Fill.FillType = FillFormatType.Picture image2 = bodyMaster.Shapes.AppendEmbedImageByPath (ShapeType.Rectangle, pic2, rect) bodyMaster.SlideBackground.Fill.PictureFill.Picture.EmbedImage = image2.PictureFill.Picture.EmbedImage # Insert a logo to the body slide master logo = "Logo.png" bodyMaster.Shapes.AppendEmbedImageByPath(ShapeType.Rectangle, logo, RectangleF.FromLTRB(pres.SlideSize.Size.Width - 110, 10, pres.SlideSize.Size.Width - 10, 110)) # Insert text to the body slide master shape = bodyMaster.Shapes.AppendShape(ShapeType.Rectangle, RectangleF.FromLTRB(pres.SlideSize.Size.Width - 210, 110, pres.SlideSize.Size.Width - 10, 150)) shape.Fill.FillType = FillFormatType.none shape.Line.FillType = FillFormatType.none shape.TextFrame.Text = "Spire.Presentation" # Set the color scheme for the two slide masters coverMaster.Theme.ColorScheme.Accent1.Color = Color.get_Red() coverMaster.Theme.ColorScheme.Accent2.Color = Color.get_Blue() bodyMaster.Theme.ColorScheme.Accent1.Color = Color.get_Brown() coverMaster.Theme.ColorScheme.Accent2.Color = Color.get_Green() # Apply the first master with layout to the first slide pres.Slides.get_Item(0).Layout = coverMaster.Layouts.GetByType(SlideLayoutType.Title) # Apply the second master with layout to other slides for i in range(1, pres.Slides.Count): pres.Slides.get_Item(i).Layout = bodyMaster.Layouts.GetByType(SlideLayoutType.TitleAndObject) # Save the document pres.SaveToFile("output/CreateAndApplySlideMaster.pptx", FileFormat.Pptx2016) pres.Dispose()
Modify Slide Masters in PowerPoint Presentations
A presentation can have multiple slide masters, which can be applied to different slides to achieve a unified style application and modification for different types of slides.
The Presentation.Masters.get_Item() method in Spire.Presentation for Python allows developers to retrieve the specified slide master in the presentation by index and modify the master. The following step-by-step example demonstrates how to retrieve a slide master and modify its background, color scheme, and embedded images:
- Create an object of Presentation class and load a PowerPoint presentation using Presentation.LoadFromFile() method.
- Get a slide master through Presentation.Masters property.
- Use the methods under IMasterSlide class to change the background, set the color scheme, delete and insert text and images, etc.
- Save the presentation using Presentation.SaveToFile() method.
- Python
from spire.presentation.common import * from spire.presentation import * # Create an object of Presentation pres = Presentation() # Load a PowerPoint presentation pres.LoadFromFile("output/CreateAndApplySlideMaster.pptx") # Get the third slide master master = pres.Masters[2] # Change the background master.SlideBackground.Type = BackgroundType.Custom master.SlideBackground.Fill.FillType = FillFormatType.Solid master.SlideBackground.Fill.SolidColor.Color = Color.get_LightBlue() # Change the color sheme master.Theme.ColorScheme.Accent1.Color = Color.get_Red() master.Theme.ColorScheme.Accent2.Color = Color.get_Green() # Remove the pictures in the slide master pictures = [shape for shape in master.Shapes if isinstance(shape, SlidePicture)] for picture in pictures: master.Shapes.Remove(picture) # Change the text in the slide master texts = [shape for shape in master.Shapes if isinstance(shape, IAutoShape)] for text in texts: if len(text.TextFrame.Text) != 0: text.TextFrame.Text = "Spire.Presentation for Python" # Save the presentation pres.SaveToFile("output/ModifySlideMaster.pptx", FileFormat.Pptx2016) pres.Dispose()
Copy Slide Masters Between PowerPoint Presentations
Applying the slide style of a presentation to another presentation can be achieved by copying the slide master between presentations and applying the master style to the specified slides. The following are the steps to copy the slide master between presentations and apply it to the specified slides:
- Create two objects of Presentation class and load two presentation documents using Presentation.LoadFromFile() method.
- Get the slide master of the second presentation using Presentation.Masters.get_Item() method.
- Add the slide master to the first presentation using Presentation.Masters.AppendSlide() method.
- Apply the slide master to the slides in the second presentation through ISlide.Layout property.
- Save the first presentation using Presentation.SaveToFile() method.
- Python
from spire.presentation import * from spire.presentation.common import * # Create two objects of Presentation pres1 = Presentation() pres2 = Presentation() # Load two PowerPoint documents pres1.LoadFromFile("Sample.pptx") pres2.LoadFromFile("Template.pptx") # Get the slide master of the second presentation master = pres2.Masters.get_Item(0) # Add the slide master to the first presentation index = pres1.Masters.AppendSlide(master) # Apply the slide master to the first presentation pres1.Slides.get_Item(0).Layout = pres1.Masters.get_Item(index).Layouts.GetByType(SlideLayoutType.Title) for i in range(1, pres1.Slides.Count): pres1.Slides.get_Item(i).Layout = pres1.Masters.get_Item(index).Layouts.GetByType(SlideLayoutType.TitleAndObject) # Save the first presentation pres1.SaveToFile("output/CopySlideMaster.pptx", FileFormat.Pptx2013) pres1.Dispose() pres2.Dispose()
Apply for a Temporary License
If you'd like to remove the evaluation message from the generated documents, or to get rid of the function limitations, please request a 30-day trial license for yourself.