Как получить доступ к элементу формы слайдов при попытке получить данные заполнителя? Это делается с помощью Python PPTX - PullRequest
0 голосов
/ 07 января 2019

Я пишу код, чтобы узнать количество заполнителей, присутствующих в существующей презентации PowerPoint. Но по какой-то причине я не могу загрузить боковые значения для формы. Я что-то здесь упускаю. Может ли кто-нибудь направить меня?

Я прочитал документацию и вижу, что в большинстве примеров добавлена ​​строка slide=prs.slides.add_slide(prs.slide_layouts[8]) Я не хочу менять существующий макет слайда на slide_layouts style[8].

from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.util import Inches
from pptx.enum.text import MSO_ANCHOR, MSO_AUTO_SIZE
prs = Presentation('test1.pptx')
slide = prs.slide_layouts(prs)
for shape in slide.placeholders:
print('%d %s' % (shape.placeholder_format.idx, shape.name))

1 Ответ

0 голосов
/ 08 января 2019

Во-первых, вам нужно различать макеты слайдов и сами слайды. Хотите получить информацию о макетах или о существующих на данный момент слайдах?

Для существующих на данный момент слайдов вы можете получить доступ к слайдам из объекта slides. Чтобы получить все заполнители для каждого слайда, это будет работать:

for slide in prs.slides:
    for shape in slide.placeholders:
        print('%d %d %s' % (prs.slides.index(slide), shape.placeholder_format.idx, shape.name))

Если вы хотите получить заполнители макетов (от мастера), вам нужно получить доступ к объекту slide_layouts.

for slide in prs.slide_layouts:
    for shape in slide.placeholders:
        print('%d %d %s' % (prs.slide_layouts.index(slide), shape.placeholder_format.idx, shape.name))
...