使用 Python 库 python-pptx 创建和更新 PowerPoint 演示文稿

python-pptx 库是一个强大的工具,允许我们通过编程方式创建和编辑 PowerPoint (.pptx) 文件。它让我们能够完全掌控幻灯片、形状、文本框、段落和图片等元素的操作,包括文本格式(字体大小、样式、加粗、斜体)、幻灯片布局等。这使得它成为自动化 PowerPoint 创建或修改的理想选择。 主要特性包括:

  • 创建和编辑幻灯片: 添加、删除和自定义幻灯片。
  • 形状和文本: 添加各种形状(矩形、线条、圆形等)以及段落、标题和项目符号等文本元素。
  • 文本格式化: 自定义字体大小、颜色、加粗、斜体等。
  • 图片: 在幻灯片中插入图片。
  • 表格: 创建具有自定义尺寸和单元格样式的表格并设置格式。
  • 图表: 添加图表或图形(有一些限制)。

限制: 该库仅适用于 .pptx 文件,这意味着它不适用于使用 .ppt 格式的 PowerPoint 2003 或更早版本。.pptx 是随 PowerPoint 2007 引入的现代基于 XML 的格式。
安装: 为了开始使用,我们需要安装 python-pptx 库。我们可以通过 Python 包管理器 pip 轻松安装它。打开命令提示符(或终端)并运行以下命令:

> pip install python-pptx

基本用法示例

示例 1: 此示例演示了如何创建一个包含标题幻灯片的简单演示文稿。

Python


CODEBLOCK_31d746f5

输出

!<a href="https://media.geeksforgeeks.org/wp-content/uploads/20250428160621327070/presentationwithtitleslide.png">presentationwithtitleslidePresentation with a title slide

解释:

  • p = Presentation() 创建了一个新的 PowerPoint 演示文稿。
  • p.slides.addslide(p.slidelayouts[0]) 添加了一张标题幻灯片。
  • s.shapes.title.text = "Created By python-pptx" 设置了标题文本。
  • s.placeholders[1].text = "This is an example of a title and subtitle slide." 设置了副标题文本。

示例 2: 我们还可以向幻灯片添加自定义文本框。

Python


CODEBLOCK_aec037e9

输出

!OutputStyled Textbox with Multiple Paragraphs

解释:

  • s.shapes.add_textbox(Inches(1), Inches(1), Inches(3), Inches(3)) 在指定位置和大小添加了一个文本框。
  • txtframe = txtbox.textframe 访问文本框架,并通过 txtframe.text = "This is a text box." 设置初始文本。
  • 添加一个段落 p = txtframe.addparagraph() 并通过 p.font.bold, p.font.italic = True, True 应用粗体和斜体。
  • 添加另一个段落,并使用 p.font.size = Pt(40). 将字体大小设置为 40 磅。

示例 3: 我们可以从 PowerPoint 演示文稿中提取文本内容,并将其保存到文本文件中。

Python


CODEBLOCK_9f79cd5d

输出

Text extracted.

!OutputPowerPoint content extracted to text

解释:

  • 演示文稿是使用 Presentation("output.pptx") 从 output.pptx 加载的。
  • 它遍历演示文稿中的每个幻灯片和形状,检查具有文本框架的形状。
  • 对于形状文本框架中的每个段落,脚本会连接文本并将它们写入 output.txt 文件。
  • 提取的文本保存在 output.txt 中,并打印一条确认消息。

示例 4: 在这个示例中,我们将创建一个新的 PowerPoint 演示文稿,添加一个空白幻灯片,并在指定位置插入一张图片。

Python


from pptx import Presentation

from pptx.util import Inches

p = Presentation()

s = p.slides.addslide(p.slidelayouts[6])

s.shapes.add_picture

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/39027.html
点赞
0.00 平均评分 (0% 分数) - 0