Как добавить тень к автофигурам, используя Python -pptx? - PullRequest
1 голос
/ 14 апреля 2020

Я просто хочу добавить тень к фигурам, которые я создаю при использовании python -pptx . Я прочитал столько документов об использовании теней в python -pptx, сколько смог найти, но не могу понять, как на самом деле это сделать.

Я пытался shadow = shape.shadow создать объект 'ShadowFormat', но когда я пытаюсь сделать shadow.visible, я получаю сообщение об ошибке AttributeError: 'ShadowFormat' object has no attribute 'visible'

Если бы кто-нибудь мог объяснить, как это делается, и привести пример , это было бы очень признательно!

Дополнительная информация:

Это страница, ссылающаяся на топи c: https://python-pptx.readthedocs.io/en/latest/dev/analysis/shp-shadow.html, однако нет примера того, как создать тень для фигуры в powerpoint. Я импортировал следующие модули:

from pptx import Presentation
from pptx.enum.shapes import MSO_SHAPE
from pptx.enum.action import PP_ACTION
from pptx.util import Cm
from pptx.enum.dml import MSO_THEME_COLOR_INDEX
from pptx.enum.text import MSO_AUTO_SIZE
from pptx.util import Pt

Я использую python -pptx v0.6.18 и python v3.8

Редактировать

Пример, который создает форму, но не появляется тень:

#Import modules
from pptx import Presentation
from pptx.enum.shapes import MSO_SHAPE
from pptx.util import Cm
from pptx.enum.dml import MSO_THEME_COLOR_INDEX
from pptx.util import Pt


#Open powerpoint file
prs = Presentation('filename.pptx')

#Create a slide
slidelayout = prs.slide_layouts[0]
slide = prs.slides.add_slide(slidelayout)
shapes = slide.shapes

#Add a shape
shape = shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE, Cm(10), Cm(10), Cm(10), Cm(10))

#Create a shadow
shadow = shape.shadow
shadow.inherit = False
shadow.visible = True
shadow.distance = Pt(10)
shadow.shadow_type = 'outer'
shadow.angle = 45
shadow.blur_radius = Pt(5)
shadow.color = MSO_THEME_COLOR_INDEX.ACCENT_5
shadow.transparency = '50'
shadow.distance = Pt(5)
shape.shadow.style = 'outer'

#Save the powerpoint file
prs.save('filename2.pptx')

Пример, который создает сообщение об ошибке:

#Import modules
from pptx import Presentation
from pptx.enum.shapes import MSO_SHAPE
from pptx.util import Cm
from pptx.enum.dml import MSO_THEME_COLOR_INDEX
from pptx.util import Pt


#Open powerpoint file
prs = Presentation('filename.pptx')

#Create a slide
slidelayout = prs.slide_layouts[0]
slide = prs.slides.add_slide(slidelayout)
shapes = slide.shapes

#Add a shape
shape = shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE, Cm(10), Cm(10), Cm(10), Cm(10))

#Create a shadow
shadow = shape.shadow
shadow.visible


#Save the powerpoint file
prs.save('filename2.pptx')
...