知识库

Python PPTX | 如何使用 PowerPoint 演示文稿进行操作

如果您想了解如何使用 Python 在不依赖其他外部软件的情况下创建、读取、定制、合并、克隆或转换 PowerPoint 和 OpenOffice 演示文稿,我们为您准备了完整指南。

Aspose.Slides for Python via .NET 是一个用于操作演示文稿的类库,提供诸多关键功能,例如从头创建演示文稿、转换演示文稿、管理文本、形状、表格、动画、预览幻灯片、将幻灯片导出为 PDF、TIFF、XPS、HTML 等,以及更多功能。Aspose.Slides for Python via .NET 提供演示和工作示例,帮助您更好地了解我们的 API。

我们的 API 提供以下功能:

• 从模板创建或克隆幻灯片
• 操作 PowerPoint 表格
• 添加或移除形状的保护
• 将 MS Excel 图表作为 OleObject 添加
• 从数据库生成演示文稿
• 为演示文稿设置保护
• 创建和修改图表
• 将演示文稿导出为 PDF、XPS、HTML、JPEG、PNG、SVG 等多种格式

支持的文件格式:

Aspose.Slides for Python via .NET 能够加载和保存以下文件格式:PPT、POT、PPS、PPTX、POTX、PPSX、PPTM、PPSM、POTM、ODP、OTP,并可另存为以下格式:TIFF、EMF、PDF、XPS、JPEG、PNG、GIFF、BMP、SVG、SWF、HTML、XAML。

下面,我们将展示如何创建、打开、合并和保存演示文稿,并提供代码示例。

Python PPTX | 如何使用 PowerPoint 演示文稿进行操作

如何使用 Python 创建 PowerPoint (PPTX) 演示文稿

要使用 Aspose.Slides for Python via .NET 在幻灯片中添加新行,请按以下步骤操作:

  1. 实例化 Presentation 类
  2. 使用其索引获取幻灯片引用
  3. 通过 shapes 对象的 add_auto_shape 方法添加类型为 LINE 的 AutoShape
  4. 将演示文稿保存为 PPTX 文件

使用上述步骤,我们在演示文稿的第一张幻灯片上添加了一条线:

import aspose.slides as slides  

# 实例化一个表示演示文稿文件的 Presentation 对象
with slides.Presentation() as presentation:
    slide = presentation.slides[0]
    slide.shapes.add_auto_shape(slides.ShapeType.LINE, 50, 150, 300, 0)
    presentation.save("NewPresentation_out.pptx", slides.export.SaveFormat.PPTX)

如何使用 Python 打开演示文稿

使用 Aspose.Slides for Python via .NET,开发者可以访问或修改现有的 PowerPoint 演示文稿。

我们的 API 提供了一个 Presentation 类用于打开已有演示文稿,您可以使用该类的合适构造函数基于已有的 PowerPoint 文件创建对象。下面的示例演示了如何打开一个演示文稿,并打印幻灯片总数:

import aspose.slides as slides

# 通过将文件路径传递给 Presentation 类的构造函数来打开演示文稿文件
with slides.Presentation("pres.pptx") as pres:
    # 打印演示文稿中幻灯片的总数
    print(pres.slides.length)

如果您处理的是非常大的演示文稿(例如大小为 3 GB),可以使用下面的示例代码打开:

import aspose.slides as slides
import os

loadOptions = slides.LoadOptions()
loadOptions.blob_management_options = slides.BlobManagementOptions()
loadOptions.blob_management_options.presentation_locking_behavior = slides.PresentationLockingBehavior.KEEP_LOCKED

with slides.Presentation("pres.pptx", loadOptions) as pres:
    # 大型演示文稿已加载并可使用,内存占用仍然很低。

    # 对演示文稿进行任意修改。
    pres.slides[0].name = "Very large presentation"

    # 将演示文稿保存为另一个文件,保存过程中内存占用仍保持低水平。
    pres.save("veryLargePresentation-copy.pptx", slides.export.SaveFormat.PPTX)

    # 不能在此时删除文件!会抛出 IO 异常,因为文件仍被 pres 对象锁定
    os.remove("pres.pptx")

# 此时可以安全删除源文件,因为已不再被锁定
os.remove("pres.pptx")

如果您创建的演示文稿包含大型对象(超大图片、视频、音频等),请使用Blob 设施 来降低内存消耗。

如何使用 Python 合并 PowerPoint 演示文稿

Aspose.Slides for Python via .NET 允许您以多种方式合并演示文稿。您可以在不丢失质量或数据的前提下,合并幻灯片的形状、格式、文本、样式、批注等。使用我们的 API,您可以合并整个演示文稿、特定幻灯片,或在同一格式(PPTX 转 PPTX、PPT 转 PPT 等)或不同格式(PPTX 转 PPT、PPTX 转 ODP 等)之间进行合并。

要合并演示文稿,可使用add_clone 方法(来自ISlideCollection 接口)。Presentation 对象包含一个幻灯片集合,您可以在选定的演示文稿上调用 add_clone 方法,将幻灯片合并进去。

合并演示文稿

使用AddClone (ISlide) 方法,您可以在不担心幻灯片外观和样式丢失的情况下(默认参数)合并幻灯片。下面的代码演示了如何合并演示文稿:

import aspose.slides as slides

with slides.Presentation("pres.pptx") as pres1:
    with slides.Presentation("Presentation1.pptx") as pres2:
        for slide in pres2.slides:
            pres1.slides.add_clone(slide)
        pres1.save("combined.pptx", slides.export.SaveFormat.PPTX)

合并演示文稿并更改幻灯片样式
如果希望在合并时更改输出演示文稿中幻灯片的样式,可使用add_clone (ISlide, IMasterSlide, Boolean) 方法:

import aspose.slides as slides

with slides.Presentation("pres.pptx") as pres1:
    with slides.Presentation("Presentation1.pptx") as pres2:
        for slide in pres2.slides:
            pres1.slides.add_clone(slide, pres1.masters[0], allow_clone_missing_layout = True)
        pres1.save("combined_with_master.pptx", slides.export.SaveFormat.PPTX)

合并特定幻灯片
使用下面的代码,您可以从不同演示文稿中挑选并合并特定幻灯片,生成单一输出演示文稿:

import aspose.slides as slides

with slides.Presentation("pres.pptx") as pres1:
    with slides.Presentation("Presentation1.pptx") as pres2:
        for slide in pres2.slides:
            pres1.slides.add_clone(slide, pres1.layout_slides[0])
        pres1.save("combined_with_layout.pptx", slides.export.SaveFormat.PPTX)

有关更多合并方式,请参阅文档中的合并演示文稿 章节。

如何使用 Python 保存 PowerPoint 演示文稿

使用 Aspose.Slides for Python via .NET,您可以将演示文稿保存为文件或流。下面提供两种方法的示例代码。

将演示文稿保存为文件
您可以调用Presentation 类的 Save 方法来保存文件。

下面的代码展示了如何使用 Aspose.Slides for Python via .NET 在 Python 中传入文件名和保存格式来保存演示文稿:

import aspose.slides as slides

# 实例化一个表示 PPT 文件的 Presentation 对象
with slides.Presentation() as presentation:
    
    # ...在此处执行您的操作...

    # 将演示文稿保存为文件
    presentation.save("Saved_out.pptx", slides.export.SaveFormat.PPTX)

将演示文稿保存到流
另一种保存方式是将演示文稿保存到流。只需将输出流传递给Presentation 类的 Save 方法。下面的示例创建了一个新的演示文稿,向形状中添加文本,并将演示文稿保存到流中:

import aspose.slides as slides

# 实例化一个表示 PPT 文件的 Presentation 对象
with slides.Presentation() as presentation:
    
    shape = presentation.slides[0].shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 200, 200, 200, 200)

    # 将演示文稿保存到流
    with open("Save_As_Stream_out.pptx", "bw") as stream:
        presentation.save(stream, slides.export.SaveFormat.PPTX)

在我们的文档中,您可以了解如何使用预定义视图类型保存演示文稿将演示文稿保存为严格的 Open XML 电子表格格式 ,或以百分比形式保存进度更新

Aspose.Slides for Python via .NET 与 Python 3.5、3.6、3.7、3.8、3.9 兼容,若在 Linux 上编写 Python 代码,请查看额外的Linux 要求

付费咨询

如果您需要项目帮助,我们拥有专家 可以与您合作,设计解决方案,并根据您的需求实现我们的 API。我们会承担繁重的工作,让您专注于业务本身。