在某些PPT使用场景中,比如需要打印幻灯片或者超链接已失效时,演示文稿中的超链接可能会成为一种干扰。这时我们需要移除PowerPoint演示文稿中的超链接,以确保演示的连贯性和专业性。通过使用Python,我们可以高效地批量处理这一任务,实现自动化的工作流程。本文将介绍如何使用Python删除PowerPoint演示文稿中的所有超链接。
- 用Python删除PPT所有超链接
本文所使用的方法需要用到Spire.Presentation for Python,PyPI:pip install Spire.Presentation
。
用Python删除PPT所有超链接
在演示文稿中,超链接可以添加到演示文稿的各种形状中,如自动形状、表格、图片,以及形状中的文本上。因此,我们在删除超链接时,需要检查形状以及形状中的文本是否包含超链接,并在包含时将其移除。
以下是详细操作步骤:
- 导入所需资源。
- 创建
Presentation
对象,并使用Presentation.LoadFromFile()
方法载入PowerPoint演示文稿。 遍历演示文稿中的幻灯片,然后遍历幻灯片中的形状;
- 检查形状是否有超链接,如果有,将
IShape.Click
属性设置为IShape.Click.get_NoAction()
方法的结果来移除超链接。 - 检查形状是否为
IAutoShape
对象,如果是,则遍历形状中的段落以及段落中的文本片段。检查每个文本片段是否有超链接,如果有则将TextRange.ClickAction
设置为None
来移除超链接。 - 检查形状是否为
ITable
对象,如果是,则遍历每个单元格,单元格中的段落,以及段落中的文本片段。检查文本片段是否包含超链接,并移除包含的超链接。
- 检查形状是否有超链接,如果有,将
- 使用
Presentation.SaveToFile()
方法保存演示文稿。 - 释放资源。
代码示例
from spire.presentation import Presentation, IAutoShape, ITable, FileFormat
# 创建 Presentation 类的实例并加载一个 PowerPoint 演示文稿
演示文稿 = Presentation()
演示文稿.LoadFromFile("G:/Documents/Sample16.pptx")
# 遍历演示文稿中的幻灯片
for 幻灯片 in 演示文稿.Slides:
# 遍历幻灯片中的形状
for 形状 in 幻灯片.Shapes:
# 检查形状是否有超链接
if 形状.Click is not None:
# 移除超链接
形状.Click = 形状.Click.get_NoAction()
# 检查形状是否为 IAutoShape 对象
if isinstance(形状, IAutoShape):
自动形状 = IAutoShape(形状)
# 遍历自动形状中的段落
for 段落 in 自动形状.TextFrame.Paragraphs:
# 遍历段落中的文本范围
for 文本范围 in 段落.TextRanges:
# 检查文本范围是否有超链接
if 文本范围.ClickAction is not None:
# 移除超链接
文本范围.ClickAction = None
# 检查形状是否为 ITable 对象
if isinstance(形状, ITable):
表格 = ITable(形状)
# 遍历表格中的行
for 行 in 表格.TableRows:
# 遍历行中的单元格
for 单元格 in 行:
# 遍历单元格中的段落
for 段落 in 单元格.TextFrame.Paragraphs:
# 遍历段落中的文本范围
for 文本范围 in 段落.TextRanges:
# 检查文本范围是否有超链接
if 文本范围.ClickAction is not None:
# 移除超链接
文本范围.ClickAction = None
# 保存演示文稿
演示文稿.SaveToFile("output/RemovePresentationHyperlinks.pptx", FileFormat.Pptx2019)
演示文稿.Dispose()
结果
本文演示了如何使用Python移除PowerPoint演示文稿中的所有超链接。
更多PowerPoint演示文稿处理技巧请前往Spire.Presentation for Python教程查看。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。