使用python-pptx包批量修改ppt格式的实现


Posted in Python onFebruary 14, 2020

最近实习需要对若干ppt进行格式上的调整,主要就是将标题的位置、对齐方式、字体等统一,人工修改又麻烦又容易错。

因此结合网上的pptx包资料,使用python脚本完成处理。

主要的坑点在于,shape的text_frame不能直接修改字体,甚至paragraph也不行,由于一个框里多个字体存在,它会报为“None”,需要进一步去run层修改。

from pptx import Presentation
from pptx.enum.text import PP_ALIGN

prs = Presentation('originalppt.pptx') #导入ppt

sthead=prs.slides[2].shapes[1] #以第3张ppt为标准标题格式
print(sthead.text)
stleft=sthead.left
stwidth=sthead.width
sttop=sthead.top
stheight=sthead.height

#进行逐个修改
i=1
for slide in prs.slides:
 for shape in slide.shapes:
 if shape.has_text_frame:
  if 36000<shape.left<1200000 and shape.height<1400000:
   ftname=(shape.text_frame.paragraphs[0].runs[0].font.name)
   ftsize=int(shape.text_frame.paragraphs[0].runs[0].font.size.pt)
   if (ftsize>27):
   head=shape
   head.left=stleft
   head.top=sttop
   head.width=10080000
   head.height=stheight
   
   head.text_frame.vertical_anchor = MSO_ANCHOR.MIDDLE
   head.text_frame.paragraphs[0].line_spacing=1

   for paragraph in head.text_frame.paragraphs:
    for run in paragraph.runs:
    run.font.size = 32*12700 
    run.font.name = '宋体'

   #print(i,'ok')

 i +=1

prs.save('adjnew.pptx') #保存修改后的ppt

以上这篇使用python-pptx包批量修改ppt格式的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python自动化测试ConfigParser模块读写配置文件
Aug 15 Python
python实现用户管理系统
Jan 10 Python
PyTorch学习笔记之回归实战
May 28 Python
解决Python pandas df 写入excel 出现的问题
Jul 04 Python
Python实现的删除重复文件或图片功能示例【去重】
Apr 23 Python
python lxml中etree的简单应用
May 10 Python
在Django下测试与调试REST API的方法详解
Aug 29 Python
python3 自动打印出最新版本执行的mysql2redis实例
Apr 09 Python
学习python需要有编程基础吗
Jun 02 Python
Python JSON常用编解码方法代码实例
Sep 05 Python
opencv检测动态物体的实现
Jul 21 Python
python编程项目中线上问题排查与解决
Nov 01 Python
python在不同条件下的输入与输出
Feb 13 #Python
深入浅析python的第三方库pandas
Feb 13 #Python
使用python的pyplot绘制函数实例
Feb 13 #Python
Python3读写Excel文件(使用xlrd,xlsxwriter,openpyxl3种方式读写实例与优劣)
Feb 13 #Python
python输出pdf文档的实例
Feb 13 #Python
python打印文件的前几行或最后几行教程
Feb 13 #Python
Python创建空列表的字典2种方法详解
Feb 13 #Python
You might like
php 设计模式之 工厂模式
2008/12/19 PHP
PHP开发中常用的三个表单验证函数使用小结
2010/03/03 PHP
ThinkPHP写第一个模块应用
2012/02/20 PHP
PHP抓取及分析网页的方法详解
2016/04/26 PHP
PHP的mysqli_set_charset()函数讲解
2019/01/23 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
ExtJS Grid使用SimpleStore、多选框的方法
2009/11/20 Javascript
用JavaScript对JSON进行模式匹配(Part 1-设计)
2010/07/17 Javascript
For循环中分号隔开的3部分的执行顺序探讨
2014/05/27 Javascript
使用insertAfter()方法在现有元素后添加一个新元素
2014/05/28 Javascript
JavaScript函数详解
2014/11/17 Javascript
JavaScipt选取文档元素的方法(推荐)
2016/08/05 Javascript
js实现简易聊天对话框
2017/08/17 Javascript
Vue中组件之间数据的传递的示例代码
2017/09/08 Javascript
vue2.0 如何在hash模式下实现微信分享
2019/01/22 Javascript
vue滑动吸顶及锚点定位的示例代码
2020/05/10 Javascript
在Python中操作列表之List.append()方法的使用
2015/05/20 Python
Python中动态检测编码chardet的使用教程
2017/07/06 Python
梯度下降法介绍及利用Python实现的方法示例
2017/07/12 Python
python利用高阶函数实现剪枝函数
2018/03/20 Python
Python get获取页面cookie代码实例
2018/09/12 Python
python树莓派红外反射传感器
2019/01/21 Python
PyCharm 专业版安装图文教程
2020/02/20 Python
pyspark给dataframe增加新的一列的实现示例
2020/04/24 Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
2020/06/08 Python
学生感冒英文请假条
2014/02/04 职场文书
个人近期表现材料
2014/02/11 职场文书
产假请假条
2014/04/10 职场文书
法制宣传月活动方案
2014/05/11 职场文书
公司优秀员工获奖感言
2014/08/14 职场文书
2014大四本科生自我鉴定总结
2014/10/04 职场文书
党员倡议书
2015/01/19 职场文书
2015年语言文字工作总结
2015/07/23 职场文书
安全教育主题班会总结
2015/08/14 职场文书
2016年春节慰问信息大全
2015/11/30 职场文书
Qt数据库应用之实现图片转pdf
2022/06/01 Java/Android