我尝试使用python-pptx对形状使用点击操作转到演示文稿中的另一张幻灯片。
与此问题类似: Python PPTX Internal Hyperlinks workaround function
与我看到的其他教程和指南不同,我不打算在我的形状中添加文本运行,我希望的行为是单击形状上的任何位置(没有文本)将导致操作行为。尝试遵循指南和文档是不成功的。我能够抓住rId,但无法将属性添加到对象以启用链接。
rId = s1.part.relate_to(s3.part, RT.SLIDE)
#We want to make the entire shape have the linking behavior here
r = s1.placeholders[10].text_frame.paragraphs[0].add_run()
r.text = "Link to Slide 3"
rPr = r._r.get_or_add_rPr()
hlinkClick = rPr.add_hlinkClick(rId)
hlinkClick.set('action', 'ppaction://hlinksldjump')
答案 0 :(得分:0)
这行代码就足够了:
shape.click_action.target_slide = destination
这是一个小例子。
from pptx import Presentation
from pptx.util import Inches
from pptx.enum.shapes import MSO_SHAPE
prs = Presentation()
layout = prs.slide_layouts[0]
source = prs.slides.add_slide(layout)
destination = prs.slides.add_slide(layout)
width = height = Inches(1.0)
shape = source.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE, 0, 0, width, height)
# the linking part
shape.click_action.target_slide = destination
prs.save('linked_slide.pptx')
documentation还说明了一些可能的相对链接操作(链接到上一张,下一张,第一张或最后一张幻灯片),但是我还没有使它起作用。