Python -pptx - вставка картинки в форму и анимацию - PullRequest
0 голосов
/ 12 апреля 2020

Я пытаюсь сделать сценарий python, используя python -pptx, но я не могу вставить изображение в форму. По сути, он мне нужен для того, чтобы сделать изображение прозрачным (https://www.shapechef.com/blog/make-image-transparent-in-powerpoint).

Еще одна вещь, я хотел бы добавить в презентацию кнопку для показа / скрытия изображения ( пытаясь сделать это в python). Я не уверен, как использовать анимацию в python -pptx, вы можете мне помочь с этим?

Большое спасибо, спасибо. Raz

Добавление кода для создания фигуры с прозрачностью (просто нужно вставить в нее картинку):

from pptx import Presentation
from pptx.oxml.xmlchemy import OxmlElement
from pptx.util import Cm
from pptx.enum.shapes import MSO_SHAPE
from pptx.dml.color import RGBColor

def SubElement(parent, tagname, **kwargs):
        element = OxmlElement(tagname)
        element.attrib.update(kwargs)
        parent.append(element)
        return element

def _set_shape_transparency(shape, alpha):
    """ Set the transparency (alpha) of a shape"""
    ts = shape.fill._xPr.solidFill
    sF = ts.get_or_change_to_srgbClr()
    sE = SubElement(sF, 'a:alpha', val=str(alpha))

## Create presentation
prs = Presentation()
## Add a slide (empty slide layout)
slide = prs.slides.add_slide(prs.slide_layouts[6])
##Add a blue box to the slide
# MSO_FILL_TYPE = MSO_FILL.PICTURE
blueBox = slide.shapes.add_shape(autoshape_type_id=MSO_SHAPE.RECTANGLE,
                         left=Cm(0),
                         top=Cm(0.54),
                         height=Cm(17.97),
                         width=Cm(25.4))
## Make the box blue
blueBoxFill = blueBox.fill
blueBoxFill.solid()
blueBoxFillColour = blueBoxFill.fore_color
blueBoxFillColour.rgb = RGBColor(0,176,240)
## Set the transparency of the blue box to 56%
_set_shape_transparency(blueBox,44000)
## Save the presentation
prs.save('test.pptx')
...