首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在同一个PowerPoint文档中创建指向其他幻灯片的超链接

在同一个PowerPoint文档中创建指向其他幻灯片的超链接
EN

Stack Overflow用户
提问于 2016-11-01 17:58:19
回答 2查看 1.6K关注 0票数 2

我正在寻找一种方法来添加一个超链接到相同的PPTX文档中的其他幻灯片,自动使用python。下面是我的测试,没有用。网上搜索暗示使用ActionSetting、part、target_slide、rels、rPr.add_ihlinkClick等的解决方案很少,但我无法完全理解如何将它们结合在一起。

基本上,期望的结果是创建一个文本,通过幻灯片号或幻灯片ID跳转到任何其他幻灯片(如果存在这种情况)。

代码语言:javascript
运行
复制
    p = table.rows[1].cells[1].text_frame.paragraphs[0]
    r = p.add_run()
    r.text = "Testing"
    r.hyperlink.address = "/ppt/slides/rels/slide1.xml"
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-01 19:00:29

现在看来,ActionSetting位在python-pptx中是只读的。因此,对于您要寻找的内容没有直接的API支持。如果您想要编写这些函数,就需要编写一个扩展/变通函数。

这里有一个关于动作设置特性空间的非常可靠的分析:http://python-pptx.readthedocs.io/en/latest/dev/analysis/shp-hyperlink.html

如果我没记错的话,唯一真正的诀窍就是获取目标幻灯片的内部目标"URL“。我将使用PowerPoint UI手工创建一个内部链接,并检查它使用opc-diag生成的XML。即使它没有解决一般的问题,要想找到有用的东西也是非常简单的。

票数 1
EN

Stack Overflow用户

发布于 2020-01-16 21:27:25

您还可以通过使用shape.click_action来“欺骗”(作为形状,只需使用包含textbox的形状):

代码语言:javascript
运行
复制
    def create_hyperlink(run, shape, to_slide):
        shape.click_action.target_slide = to_slide
        run.hyperlink.address = shape.click_action.hyperlink.address
        run.hyperlink._hlinkClick.action = shape.click_action.hyperlink._hlink.action
        run.hyperlink._hlinkClick.rId = shape.click_action.hyperlink._hlink.rId
        shape.click_action.target_slide = None

在python接口中就是这样做的(因为我无法得到正确的rId,否则^^)。看看幻灯片

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40365829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档