插件窝 干货文章 使用Python删除PPT中所有超链接的操作步骤

使用Python删除PPT中所有超链接的操作步骤

形状 文稿 链接 演示 317    来源:    2024-10-28

前言

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

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

用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移除PowerPoint演示文稿中的所有超链接。

到此这篇关于使用Python删除PPT中所有超链接的操作步骤的文章就介绍到这了,更多相关Python删除PPT超链接内容请搜索插件窝以前的文章或继续浏览下面的相关文章希望大家以后多多支持插件窝!