通过Python,你可以轻松地制作出想要的PPT。在这篇文章中,我们将从多个方面详细阐述如何运用Python制作PPT。
一、使用Python-pptx库创建ppt文件
Python-pptx是一个用于创建和更新Microsoft PowerPoint (.pptx文件)的Python库。它可以帮助你使用Python代码创建ppt文件,包括文本、图片、表格、幻灯片和注释等元素。
下面是一个简单的示例代码来创建一个简单的ppt文件:
from pptx import Presentation
from pptx.util import Inches
# 创建ppt文件
prs = Presentation()
# 添加第一个幻灯片
slide = prs.slides.add_slide(prs.slide_layouts[0])
# 在第一个幻灯片上添加标题和副标题
title = slide.shapes.title
subtitle = slide.placeholders[1]
title.text = "标题"
subtitle.text = "副标题"
# 添加第一张图片
img_path = 'picture.jpg'
left = top = Inches(1)
pic = slide.shapes.add_picture(img_path, left, top)
# 保存ppt文件
prs.save('test.pptx')
二、将Python代码插入到PPT中
在PPT中可以直接插入Python代码,展示程序执行过程或者结果等。 下面是一个示例代码,展示将Python代码插入到PPT中的方法:
from pptx import Presentation
from pptx.util import Presention Inches
from pptx.enum.text import PP_ALIGN
# 创建ppt文件
prs = Presentation()
# 创建第一个幻灯片
title_slide_layout = prs.slide_layouts[0]
slide = prs.slides.add_slide(title_slide_layout)
# 添加标题
title = slide.shapes.title
title.text = "示例代码"
# 添加代码框
left = top = Inches(2)
width = Inches(6)
height = Inches(4)
txt_box = slide.shapes.add_textbox(left, top, width, height)
txt_frame = txt_box.text_frame
# 添加代码文本
code = "print('hello, world')"
txt_frame.text = code
# 设置字体属性
p = txt_frame.paragraphs[0]
p.font.size = Pt(14)
p.font.name = 'Courier New'
p.font.color.rgb = RGBColor(255, 255, 255)
p.alignment = PP_ALIGN.CENTER
# 保存ppt文件
prs.save('test.pptx')
三、在PPT中运行Python脚本
你还可以在PPT中运行Python脚本,并将执行结果嵌入到PPT中。下面是一个简单的示例代码来在PPT中运行Python脚本并将执行结果嵌入到PPT中:
from pptx import Presentation
from pptx.util import Inches
from pptx.enum.text import PP_ALIGN
# 创建ppt文件
prs = Presentation()
# 创建第一个幻灯片
title_slide_layout = prs.slide_layouts[0]
slide = prs.slides.add_slide(title_slide_layout)
# 添加标题
title = slide.shapes.title
title.text = "执行结果展示"
# 添加代码框
left = top = Inches(2)
width = Inches(6)
height = Inches(4)
txt_box = slide.shapes.add_textbox(left, top, width, height)
txt_frame = txt_box.text_frame
# 执行脚本并将执行结果插入到PPT中
code = "import randomnnumbers = [random.randint(1, 100) for i in range(10)]nprint(numbers)"
result = str(eval(code))
txt_frame.text = result
# 设置字体属性
p = txt_frame.paragraphs[0]
p.font.size = Pt(14)
p.font.name = 'Courier New'
p.font.color.rgb = RGBColor(0, 0, 255)
p.alignment = PP_ALIGN.CENTER
# 保存ppt文件
prs.save('test.pptx')
四、使用Python-pptx模板进行ppt设计
除了以上方法外,Python-pptx还提供了丰富的模板来辅助ppt的设计。下面是一个示例代码,展示如何使用Python-pptx模板来设计PPT:
from pptx import Presentation
from pptx.enum.text import MSO_ANCHOR
from pptx.enum.shapes import MSO_AUTO_SHAPE_TYPE
from pptx.dml.color import RGBColor
from pptx.util import Pt, Cm
# 导入所需模板
from pptx.template import Template
from pptx import __version__
# 选择要使用的模板
tpl = Template("template.pptx")
prs = tpl.make_new_presentation()
# 获取指定的幻灯片版式
title_slide_layout = prs.slide_layouts[0]
# 添加第一个幻灯片
slide = prs.slides.add_slide(title_slide_layout)
# 在第一个幻灯片上添加标题
title = slide.shapes.title
title.text = "示例ppt"
# 添加矩形
left = top = Cm(2.8)
width = height = Cm(9)
shape = slide.shapes.add_shape(MSO_AUTO_SHAPE_TYPE.ROUNDED_RECTANGLE, left, top, width, height)
shape.click_action.target_slide = prs.slides.add_slide(prs.slide_layouts[1])
fill = shape.fill
fill.solid()
fill.fore_color.rgb = RGBColor(191, 191, 191)
line = shape.line
line.color.rgb = RGBColor(0, 0, 0)
line.width = Pt(1)
# 添加数字和文本框
shape = slide.shapes.add_shape(MSO_AUTO_SHAPE_TYPE.RECTANGLE, Cm(12.5), Cm(4.5), Cm(5), Cm(2))
fill = shape.fill
fill.solid()
fill.fore_color.rgb = RGBColor(255, 255, 255)
line = shape.line
line.color.rgb = RGBColor(191, 191, 191)
line.width = Pt(1)
text_box = shape.text_frame.add_paragraph().add_run()
text_box.text = "10"
text_box.font.size = Pt(48)
text_box.font.color.rgb = RGBColor(0, 0, 0)
text_box.font.name = 'Arial'
# 添加文本框
left = top = Cm(8)
width = Cm(14)
height = Cm(5)
txt_box = slide.shapes.add_textbox(left, top, width, height)
txt_frame = txt_box.text_frame
txt = "这是一个使用Python-pptx模板创建的ppt"
txt_frame.text = txt
p = txt_frame.paragraphs[0]
p.font.size = Pt(28)
p.font.name = '微软雅黑'
p.font.color.rgb = RGBColor(0, 0, 0)
# 保存ppt文件
prs.save('test.pptx')
五、在PPT中插入图表
使用Python-pptx,可以在PPT中插入图表,以直观地展示数据。
下面是一个示例代码,展示如何在PPT中插入图表:
from pptx import Presentation
from pptx.chart.data import CategoryChartData
from pptx.chart.chart import Chart
from pptx.util import Inches
# 创建ppt文件
prs = Presentation()
# 创建第一个幻灯片和标题
slide = prs.slides.add_slide(prs.slide_layouts[5])
title = slide.shapes.title
title.text = '图表示例'
# 添加图表
chart_data = CategoryChartData()
chart_data.categories = ['苹果', '香蕉', '橙子']
chart_data.add_series('销售额', (30, 45, 25))
left = Inches(2)
top = Inches(2.5)
width = Inches(6)
height = Inches(4.5)
chart = slide.shapes.add_chart(Chart.XY_SCATTER, left, top, width, height, chart_data).chart
# 设置标题、字体大小和颜色等属性
chart.chart_title.text_frame.clear()
chart.chart_title.text_frame.add_paragraph().text = '水果销售额'
chart.chart_title.text_frame.paragraphs[0].font.size = Pt(18)
chart.chart_title.text_frame.paragraphs[0].font.color.rgb = RGBColor(91, 155, 213)
# 保存ppt文件
prs.save('test.pptx')
六、如何导出PPT为pdf
Python-pptx还提供了一种简单的导出PPT为pdf的方法,在Windows系统中,Pywin32可以用于打印。使用Pywin32时,必须安装Microsoft PowerPoint。
下面是一个示例代码,展示如何将PPT导出为pdf格式:
from pptx import Presentation
import win32com.client
# 打印ppt为pdf
def print_pdf(prs, pdf_path):
ppt_path = 'test.pptx'
# 获取活动的PowerPoint应用程序
powerpoint = win32com.client.Dispatch("Powerpoint.Application")
# 是否显示打印的进度
powerpoint.Visible = False
ppt = powerpoint.Presentations.Open(ppt_path)
# 设置打印参数, printType枚举类型 {1: '短边装订', 2: '横向', 3: '纵向', 4: '平铺', 5: '平铺适应'}
printOptions = ppt.PrintOptions
printOptions.PrintType = 2
# 开始打印
ppt.PrintOut(pdf_path, PrintToFile=True)
ppt.Close()
powerpoint.Quit()
# 创建ppt文件
prs = Presentation()
slide = prs.slides.add_slide(prs.slide_layouts[0])
title = slide.shapes.title
title.text = '导出pdf示例'
prs.save('test.pptx')
# 将ppt导出为pdf
pdf_path='output.pdf'
print_pdf(prs, pdf_path)
通过这六个方面的详细阐述,你已经可以灵活地运用Python在PPT中添加多种元素,包括文本、图片、表格、幻灯片、注释、代码等等。未来,你可以通过这些方法和样例,更好地掌握Python-pptx所提供的多样化的功能,进一步提高你的工作效率。