Я просто хочу добавить тень к фигурам, которые я создаю при использовании 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')