说明:
python-pptx 写入文本,如果没有换行符,默认是一行。要实现自动换行的效果,应该在适当的地方插入换行符。
代码:
# 加载库
import os
from pptx import Presentation
from pptx.util import Cm, Pt
from pptx.enum.text import PP_ALIGN
# 设置路径
work_path = r'E:pyspace mppptx'
os.chdir(work_path)
# 实例化 ppt 文档对象
prs = Presentation()
# 插入幻灯片
blank_slide = prs.slide_layouts[6]
slide_1 = prs.slides.add_slide(blank_slide)
# 预设位置及大小
left = top = Cm(1) # left,top为相对位置
width = Cm(20) # width,height为文本框的大小
height = Cm(10)
# 在指定位置添加文本框
textbox = slide_1.shapes.add_textbox(left, top, width, height)
tf = textbox.text_frame
# 在文本框中写入文字
## 题目
para = tf.add_paragraph() # 新增段落
para.text = '我侬词' # 向段落写入文字
para.alignment = PP_ALIGN.CENTER # 居中
para.line_spacing = 1.5 # 1.5 倍的行距
### 设置字体
font = para.font
font.name = '微软雅黑' # 字体类型
font.bold = True # 加粗
font.size = Pt(32) # 大小
## 作者
new_para = tf.add_paragraph() # 添加段落
new_para.text = ' 元 · 管道昇 ' # 段落文字
new_para.alignment = PP_ALIGN.CENTER # 居中
new_para.line_spacing = 1.5 # 1.5 倍的行距
### 设置字体
font = new_para.font
font.name = '微软雅黑' # 字体类型
font.size = Pt(18) # 大小
font.underline = False # 下划线
## 分三行写入正文
### 正文文本
s ='你侬我侬,忒煞情多;情多处,热如火;把一块泥,捻一个你,塑一个我,将咱两个一齐打碎,用水调和;
再捻一个你,再塑一个我。我泥中有你,你泥中有我;我与你生同一个衾,死同一个椁。'
d = len(s)//3 + 1
ts = list(s)
for i in range(3):
ts.insert((i+1)*d - 2 + i, '
') # 插入换行符
s = ''.join(ts)
### 写入正文
new_para = tf.add_paragraph() # 添加段落
new_para.text = s
new_para.line_spacing = 1.5 # 1.5 倍的行距
# 保存 ppt
prs.save('test.pptx')
效果: