Python操作PowerPoint实现添加与设置文本框完整教程

 更新时间:2026年04月23日 08:20:21   作者:用户835629078051  
在制作 PowerPoint 演示文稿时,文本框是最常用的元素之一,本文将介绍如何使用 Python 在 PowerPoint 中添加文本框,并设置文本内容、格式和边距等属性,希望对大家有所帮助

在制作 PowerPoint 演示文稿时,文本框是最常用的元素之一。通过编程方式添加和设置文本框,可以实现批量创建演示文稿、自动化报告生成等任务。本文将介绍如何使用 Python 在 PowerPoint 中添加文本框,并设置文本内容、格式和边距等属性。

环境配置

首先需要安装 Spire.Presentation 库:

pip install Spire.Presentation

基本文本框操作

创建包含文本框的演示文稿

在 PowerPoint 中,文本框实际上是一种特殊的形状(Shape)。通过添加矩形形状并设置其 TextFrame 属性,可以创建文本框。

from spire.presentation.common import *
from spire.presentation import *

# 创建演示文稿实例
ppt = Presentation()

# 添加一个矩形形状作为文本框
shape = ppt.Slides[0].Shapes.AppendShape(
    ShapeType.Rectangle, 
    RectangleF.FromLTRB(50, 100, 500, 250)
)

# 设置文本内容
shape.TextFrame.Text = "这是一个示例文本框"

# 保存文档
ppt.SaveToFile("TextBox.pptx", FileFormat.Pptx2013)
ppt.Dispose()

生成的 PowerPoint 演示文稿如下:

在这段代码中,AppendShape 方法用于在幻灯片上添加形状。RectangleF.FromLTRB 指定了形状的位置和大小,参数依次为左、上、右、下边界的坐标。

设置文本格式

文本框中的文本可以设置字体、颜色、大小等格式属性:

from spire.presentation.common import *
from spire.presentation import *

ppt = Presentation()

# 添加文本框
shape = ppt.Slides[0].Shapes.AppendShape(
    ShapeType.Rectangle, 
    RectangleF.FromLTRB(50, 100, 500, 250)
)

# 设置文本内容
shape.TextFrame.Text = "PowerPoint 自动化处理"

# 设置文本格式
paragraph = shape.TextFrame.Paragraphs[0]
textRange = paragraph.TextRanges[0]

# 设置字体
textRange.LatinFont = TextFont("微软雅黑")
textRange.FontHeight = 24  # 字体大小

# 设置字体颜色
textRange.Fill.FillType = FillFormatType.Solid
textRange.Fill.SolidColor.Color = Color.get_Red()

# 设置加粗
textRange.Format.IsBold = TriState.TTrue

# 设置形状边框
shape.ShapeStyle.LineColor.Color = Color.get_Black()

ppt.SaveToFile("FormattedTextBox.pptx", FileFormat.Pptx2013)
ppt.Dispose()

生成的 PowerPoint 演示文稿如下:

这里通过 TextFrame.Paragraphs[0] 访问第一个段落,通过 TextRanges[0] 访问第一个文本范围,然后设置字体属性。

多段落文本框

文本框可以包含多个段落,每个段落可以有不同的格式:

from spire.presentation.common import *
from spire.presentation import *

ppt = Presentation()

# 添加文本框
shape = ppt.Slides[0].Shapes.AppendShape(
    ShapeType.Rectangle, 
    RectangleF.FromLTRB(50, 80, 650, 320)
)

# 获取 TextFrame
tf = shape.TextFrame

# 设置第一个段落
para0 = tf.Paragraphs[0]
para0.Text = "第一段:标题文本"
para0.TextRanges[0].FontHeight = 20
para0.TextRanges[0].Fill.FillType = FillFormatType.Solid
para0.TextRanges[0].Fill.SolidColor.Color = Color.get_DarkBlue()
para0.TextRanges[0].Format.IsBold = TriState.TTrue

# 添加第二个段落
para1 = TextParagraph()
tf.Paragraphs.Append(para1)
para1.Text = "第二段:正文内容"
para1.TextRanges[0].FontHeight = 16
para1.TextRanges[0].Fill.FillType = FillFormatType.Solid
para1.TextRanges[0].Fill.SolidColor.Color = Color.get_Black()

# 添加第三个段落
para2 = TextParagraph()
tf.Paragraphs.Append(para2)
para2.Text = "第三段:补充说明"
para2.TextRanges[0].FontHeight = 14
para2.TextRanges[0].Fill.FillType = FillFormatType.Solid
para2.TextRanges[0].Fill.SolidColor.Color = Color.get_Gray()

ppt.SaveToFile("MultiParagraphTextBox.pptx", FileFormat.Pptx2013)
ppt.Dispose()

生成的 PowerPoint 演示文稿如下:

通过 TextParagraph() 创建新段落,然后使用 tf.Paragraphs.Append() 方法添加到文本框中。

设置文本框边距

文本框的内边距控制文本与边框之间的距离:

from spire.presentation.common import *
from spire.presentation import *

ppt = Presentation()

# 添加文本框
shape = ppt.Slides[0].Shapes.AppendShape(
    ShapeType.Rectangle, 
    RectangleF.FromLTRB(50, 100, 500, 250)
)

# 设置文本内容
shape.TextFrame.Text = "设置了内边距的文本框,文本与边框之间有合适的间距。"

# 设置文本框内边距
shape.TextFrame.MarginTop = 15      # 上边距
shape.TextFrame.MarginBottom = 20   # 下边距
shape.TextFrame.MarginLeft = 25     # 左边距
shape.TextFrame.MarginRight = 25    # 右边距

# 设置段落对齐方式
shape.TextFrame.Paragraphs[0].Alignment = TextAlignmentType.Left

# 设置形状样式
shape.Fill.FillType = FillFormatType.Solid
shape.Fill.SolidColor.Color = Color.get_LightBlue()
shape.ShapeStyle.LineColor.Color = Color.get_Black()

ppt.SaveToFile("TextBoxWithMargins.pptx", FileFormat.Pptx2013)
ppt.Dispose()

生成的 PowerPoint 演示文稿如下:

边距的单位是磅(point),适当设置边距可以让文本框内容更加美观。

段落对齐和缩进

文本框中的段落可以设置对齐方式和缩进:

from spire.presentation.common import *
from spire.presentation import *

ppt = Presentation()

# 添加文本框
shape = ppt.Slides[0].Shapes.AppendShape(
    ShapeType.Rectangle, 
    RectangleF.FromLTRB(50, 80, 650, 350)
)

tf = shape.TextFrame

# 第一段:左对齐,无缩进
para0 = tf.Paragraphs[0]
para0.Text = "左对齐文本"
para0.Alignment = TextAlignmentType.Left
para0.Indent = 0

# 第二段:居中对齐
para1 = TextParagraph()
tf.Paragraphs.Append(para1)
para1.Text = "居中对齐文本"
para1.Alignment = TextAlignmentType.Center

# 第三段:右对齐
para2 = TextParagraph()
tf.Paragraphs.Append(para2)
para2.Text = "右对齐文本"
para2.Alignment = TextAlignmentType.Right

# 第四段:左对齐,带缩进
para3 = TextParagraph()
tf.Paragraphs.Append(para3)
para3.Text = "缩进文本示例"
para3.Alignment = TextAlignmentType.Left
para3.Indent = 50  # 缩进50磅

ppt.SaveToFile("TextBoxAlignment.pptx", FileFormat.Pptx2013)
ppt.Dispose()

生成的 PowerPoint 演示文稿如下:

TextAlignmentType 枚举提供了多种对齐方式,包括 Left、Center、Right、Justify 等。

实用技巧

设置行间距

shape.TextFrame.Paragraphs[0].LineSpacing = 150  # 1.5倍行距

行间距以百分比表示,100 表示单倍行距,150 表示 1.5 倍行距,200 表示双倍行距。

设置文本方向

shape.TextFrame.Paragraphs[0].TextDirection = TextDirectionType.Vertical

文本可以设置为水平或垂直方向,适用于特殊排版需求。

移除文本框

如果需要从幻灯片中移除文本框:

from spire.presentation.common import *
from spire.presentation import *

ppt = Presentation()
ppt.LoadFromFile("input.pptx")

slide = ppt.Slides[0]

# 遍历并移除所有形状(包括文本框)
i = 0
while i < slide.Shapes.Count:
    shape = slide.Shapes[i] if isinstance(slide.Shapes[i], IAutoShape) else None
    if shape:
        slide.Shapes.Remove(shape)
    else:
        i += 1

ppt.SaveToFile("RemovedTextBox.pptx", FileFormat.Pptx2013)
ppt.Dispose()

总结

本文介绍了使用 Python 在 PowerPoint 中添加和设置文本框的基本方法,包括创建文本框、设置文本格式、添加多段落内容、设置边距和对齐方式等操作。通过这些技术,可以实现演示文稿的自动化生成,提高工作效率。在实际应用中,可以根据需要组合使用这些功能,创建符合特定需求的演示文稿模板。

以上就是Python操作PowerPoint实现添加与设置文本框完整教程的详细内容,更多关于Python操作PowerPoint的资料请关注脚本之家其它相关文章!

相关文章

  • Python中列表、字典、元组数据结构的简单学习笔记

    Python中列表、字典、元组数据结构的简单学习笔记

    这篇文章主要介绍了Python中列表、字典、元组数据结构的简单学习笔记,文中讲到了字典在Python3中特性和操作方法的一些变化,需要的朋友可以参考下
    2016-03-03
  • Python模块搜索概念介绍及模块安装方法介绍

    Python模块搜索概念介绍及模块安装方法介绍

    这篇文章主要介绍了Python模块搜索概念介绍及模块安装方法介绍,本文详细讲解了import模块的运作原理,搜索路径的过程以及模块安装的多种方法,需要的朋友可以参考下
    2015-06-06
  • Python爬虫:将headers请求头字符串转为字典的方法

    Python爬虫:将headers请求头字符串转为字典的方法

    今天小编就为大家分享一篇Python爬虫:将headers请求头字符串转为字典的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • python交互式图形编程实例(三)

    python交互式图形编程实例(三)

    这篇文章主要为大家详细介绍了python交互式图形编程实例第三篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • Python作用域(局部 全局)及global关键字使用详解

    Python作用域(局部 全局)及global关键字使用详解

    这篇文章主要为大家介绍了Python作用域(局部 全局)及global关键字使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • python爬取哈尔滨天气信息

    python爬取哈尔滨天气信息

    这篇文章主要为大家详细介绍了python爬虫抓取哈尔滨天气信息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • python中的flask_sqlalchemy的使用及示例详解

    python中的flask_sqlalchemy的使用及示例详解

    文章主要介绍了在使用SQLAlchemy创建模型实例时,通过元类动态创建实例的方式,并说明了如何在实例化时执行__init__方法,此外,还讨论了SQLAlchemy的事务处理和回滚机制,以及如何进行数据库的基本操作,包括插入、修改、删除和查询,感兴趣的朋友跟随小编一起看看吧
    2025-12-12
  • Python面向对象编程(三)

    Python面向对象编程(三)

    本文详细讲解了Python的面向对象编程,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • 利用Python绘制带偏移的饼图

    利用Python绘制带偏移的饼图

    这篇文章主要为大家详细介绍了如何用 Python 的 matplotlib 库制作带偏移效果的饼图,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-08-08
  • JupyterLab远程密码访问实现

    JupyterLab远程密码访问实现

    本文主要介绍了JupyterLab远程密码访问实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02

最新评论