在某些PPT使用场景中,比如需要打印幻灯片或者超链接已失效时,演示文稿中的超链接可能会成为一种干扰。这时我们需要移除PowerPoint演示文稿中的超链接,以确保演示的连贯性和专业性。通过使用Python,我们可以高效地批量处理这一任务,实现自动化的工作流程。本文将介绍如何使用Python删除PowerPoint演示文稿中的所有超链接

  • 用Python删除PPT所有超链接

本文所使用的方法需要用到Spire.Presentation for Python,PyPI:pip install Spire.Presentation

申请免费License

用Python删除PPT所有超链接

在演示文稿中,超链接可以添加到演示文稿的各种形状中,如自动形状、表格、图片,以及形状中的文本上。因此,我们在删除超链接时,需要检查形状以及形状中的文本是否包含超链接,并在包含时将其移除。
以下是详细操作步骤:

  1. 导入所需资源。
  2. 创建Presentation对象,并使用Presentation.LoadFromFile()方法载入PowerPoint演示文稿。
  3. 遍历演示文稿中的幻灯片,然后遍历幻灯片中的形状;

    • 检查形状是否有超链接,如果有,将IShape.Click属性设置为IShape.Click.get_NoAction()方法的结果来移除超链接。
    • 检查形状是否为IAutoShape对象,如果是,则遍历形状中的段落以及段落中的文本片段。检查每个文本片段是否有超链接,如果有则将TextRange.ClickAction设置为None来移除超链接。
    • 检查形状是否为ITable对象,如果是,则遍历每个单元格,单元格中的段落,以及段落中的文本片段。检查文本片段是否包含超链接,并移除包含的超链接。
  4. 使用Presentation.SaveToFile()方法保存演示文稿。
  5. 释放资源。

代码示例

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移除PPT超链接

本文演示了如何使用Python移除PowerPoint演示文稿中的所有超链接。

更多PowerPoint演示文稿处理技巧请前往Spire.Presentation for Python教程查看。


大丸子
12 声望3 粉丝