Python PPTX内部超链接

时间:2018-02-13 17:03:36

标签: python-pptx

我尝试使用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')

1 个答案:

答案 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还说明了一些可能的相对链接操作(链接到上一张,下一张,第一张或最后一张幻灯片),但是我还没有使它起作用。