GOOGLE ADS

понедельник, 25 апреля 2022 г.

Как добавить тень к автофигурам с помощью Python-pptx?

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

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

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

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

Это страница со ссылкой на тему: 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')


Решение проблемы

Эта функция <ShadowFormat.visible - applies a reasonable standard shadow override.>в настоящее время выходит за рамки pptx.

Команда <shadow.inherit = False>используется для удаления настройки по умолчанию с тенью. По умолчанию для видимости тени установлено значение true. Если вы хотите показать тень, вы можете:

  • набор<shadow.inherit = True>

  • удалять<shadow.inherit = False>
  • Комментариев нет:

    Отправить комментарий

    Laravel Datatable addColumn returns ID of one record only

    Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...