使用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中的包和模块实例
Nov 22 Python
Windows下安装python2和python3多版本教程
Mar 30 Python
Python中用post、get方式提交数据的方法示例
Sep 22 Python
Python中生成器和迭代器的区别详解
Feb 10 Python
基于Python实现用户管理系统
Feb 26 Python
python实现在内存中读写str和二进制数据代码
Apr 24 Python
keras处理欠拟合和过拟合的实例讲解
May 25 Python
详细分析Python垃圾回收机制
Jul 01 Python
Pycharm打开已有项目配置python环境的方法
Jul 03 Python
Keras预训练的ImageNet模型实现分类操作
Jul 07 Python
Python使用Pygame绘制时钟
Nov 29 Python
Flask中jinja2的继承实现方法及实例
Mar 03 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设计模式 Prototype (原型模式)代码
2011/06/26 PHP
php htmlspecialchars()与shtmlspecialchars()函数的深入分析
2013/06/05 PHP
PHP中的traits实现代码复用使用实例
2015/05/13 PHP
PHP/ThinkPHP实现批量打包下载文件的方法示例
2017/07/31 PHP
PHP对称加密算法(DES/AES)类的实现代码
2017/11/14 PHP
深入解析PHP底层机制及相关原理
2020/12/11 PHP
Highslide.js是一款基于js实现的网页中图片展示插件
2020/03/30 Javascript
Javascript的一种模块模式
2010/09/08 Javascript
JQuery slideshow的一个小问题(如何发现及解决过程)
2013/02/06 Javascript
nullJavascript中创建对象的五种方法实例
2013/05/07 Javascript
javascript中的绑定与解绑函数应用示例
2013/06/24 Javascript
JS截取字符串常用方法详细整理
2013/10/28 Javascript
jQuery中on()方法用法实例详解
2015/02/06 Javascript
利用jQuery中的ajax分页实现代码
2016/02/25 Javascript
详解JavaScript中数组和字符串的lastIndexOf()方法使用
2016/03/13 Javascript
JavaScript实现DOM对象选择器
2016/09/24 Javascript
js字符串操作总结(必看篇)
2016/11/22 Javascript
微信小程序 数组中的push与concat的区别
2017/01/05 Javascript
利用Node.js了解与测量HTTP所花费的时间详解
2017/09/22 Javascript
jQuery实现table表格checkbox全选的方法分析
2018/07/04 jQuery
JS封装的模仿qq右下角消息弹窗功能示例
2018/08/22 Javascript
原生JS实现获取及修改CSS样式的方法
2018/09/04 Javascript
详解js中Array的方法及技巧
2018/09/12 Javascript
Nodejs异步流程框架async的方法
2019/06/07 NodeJs
基于原生js实现九宫格算法代码实例
2020/07/03 Javascript
Django实现单用户登录的方法示例
2019/03/28 Python
python提取xml里面的链接源码详解
2019/10/15 Python
Python爬虫使用bs4方法实现数据解析
2020/08/25 Python
css3.0新属性效果在ie下的解决方案
2010/05/10 HTML / CSS
新西兰廉价汽车租赁:Snap Rentals
2018/09/14 全球购物
采购求职信
2014/03/17 职场文书
工作会议简报
2015/07/20 职场文书
校园安全主题班会
2015/08/12 职场文书
大学生暑期社会实践的个人总结!
2019/07/17 职场文书
幽默口才训练经典句子(48句)
2019/08/19 职场文书
Go语言带缓冲的通道实现
2021/04/26 Golang