Как получить доступ к типу mso autoshape, используя python pptx? - PullRequest
0 голосов
/ 01 июля 2019

Я знаю, как мы можем добавить auto_shape определенного типа, например, ISOSCELES_TRIANGLE.Но как мы можем найти треугольники в форме слайда?Есть ли способ получить доступ к MsoAutoShapeType и получить тип.Я хочу посчитать, сколько треугольников на слайде.Спасибо

1 Ответ

1 голос
/ 01 июля 2019

См. Свойство .auto_shape_type фигуры, которое возвращает одно из значений MsoAutoShapeType.

from pptx import Presentation
from pptx.enum.shapes import MSO_SHAPE

pres = Presentation("shapes.pptx")
slide = pres.slides[0]
triangles = []
for s in slide.shapes:
    try:
        if s.auto_shape_type == MSO_SHAPE.ISOSCELES_TRIANGLE:
            triangles.append(s)
    except AttributeError as e:
        # shape is **NOT** an auto_shape; ignore
        print(f'{s.name} is not an AutoShape')
        pass

print(len(triangles))
...