Можно ли объединить две или более точки питания, используя python -pptx? - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь объединить слайды PowerPoint, и я не уверен, как это сделать. Я нашел python moduel pptx, который выглядел многообещающе. Я попытался скопировать содержимое слайда из двух точек питания в одну новую точку питания. Но я столкнулся со многими проблемами, такими как получение существующего макета или формы слайдов (все формы, включая рисунки, автоформы и т. Д.), Высота, ширина, положение. Я посмотрел пример python -pptx на Python -pptx: копировать слайд . Я пытался сделать что-то подобное, но это не работает.

Вот мой код:

from pptx import Presentation

prs1 = Presentation("C:/Users/number/Documents/Test1.pptx")
prs2 = Presentation("C:/Users/number/Documents/Test2.pptx")

slidelst = []
for layout in prs2.slide_layouts:
    slidelst.append(prs1.slides.add_slide(layout))

index = 0
for slide in slidelst:
    for shape in prs2.slides[prs2.slides.index(slide)].shapes:
        slide.shapes._spTree.insert_element_before(shape.element, 'p:extLst')
    index+=1

prs1.save("C:/Users/I505168/Documents/newpresentation.pptx")

Я получаю ошибку:

Traceback (most recent call last):
  File "C:\Users\I505168\Desktop\testpptx.py", line 12, in <module>
    for shape in prs2.slides[prs2.slides.index(slide)].shapes:
  File "C:\Users\I505168\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pptx\slide.py", line 315, in index
    raise ValueError("%s is not in slide collection" % slide)
ValueError: <pptx.slide.Slide object at 0x03B53A50> is not in slide collection

Ожидаемый результат два отдельных слайда объединяются в один слайд.

...