In this simple script you can see how tp insert a image in powerpoint. We used the layout n.3, but you can change it in the list containing the data.
It may not work since python 3.10
This code may not work for the new version of python. In this case there is another example after this that it should work.
from pptx import Presentation import os prs = Presentation() class MySlide: def __init__(self, data): self.layout = prs.slide_layouts[data[3]] self.slide=prs.slides.add_slide(self.layout) self.title=self.slide.shapes.title self.title.text=data[0] self.subtitle=self.slide.placeholders[1] self.subtitle.text=data[1] if data[2] != "": self.slide.placeholders[2].insert_picture(data[2]) slides = [ ["USA Weather", #data[0] "Subtitle(Bullet)", "girl.png", 8], ["Malaysia Weather", #data[0] "Content(Bullet)", "", 3], ["China Weather", #data[0] "This is a brown Fox", "", 3] ] for each_slide in slides: MySlide(each_slide) prs.save("stack.pptx") os.startfile("stack.pptx")
Output
In case you got an error, try this code
from pptx import Presentation import os prs = Presentation() class MySlide: def __init__(self, data): self.layout = prs.slide_layouts[data[3]] self.slide=prs.slides.add_slide(self.layout) self.title=self.slide.shapes.title self.title.text=data[0] self.subtitle=self.slide.placeholders[1] self.subtitle.text=data[1] for shape in self.slide.placeholders: print('%d %s %s' % ( shape.placeholder_format.idx, shape.placeholder_format.type, shape.name)) print() if data[2] != "": self.img = self.slide.placeholders[1].insert_picture(data[2]) slides = [ ["USA Weather", #data[0] "Subtitle(Bullet)", "girls.png", 8], ["Malaysia Weather", #data[0] "Content(Bullet)", "", 3], ["China Weather", #data[0] "This is a brown Fox", "", 3] ] for each_slide in slides: MySlide(each_slide) prs.save("stack.pptx") os.startfile("stack.pptx")
This works for python 3.10 and above
import collections import collections.abc import os from pptx import Presentation prs = Presentation() class MySlide: def __init__(self, data): self.layout = prs.slide_layouts[data[3]] self.slide=prs.slides.add_slide(self.layout) self.title=self.slide.shapes.title self.title.text=data[0] self.subtitle=self.slide.placeholders[1] self.subtitle.text=data[1] for shape in self.slide.placeholders: print('%d %s %s' % ( shape.placeholder_format.idx, shape.placeholder_format.type, shape.name)) print() if data[2] != "": self.img = self.slide.placeholders[1].insert_picture(data[2]) slides = [ ["USA Weather", #data[0] "Subtitle(Bullet)", "woman.png", 8], ["Malaysia Weather", #data[0] "Content(Bullet)", "", 3], ["China Weather", #data[0] "This is a brown Fox", "", 3] ] for each_slide in slides: MySlide(each_slide) prs.save("stack.pptx") os.startfile("stack.pptx")