使用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实现统计英文单词个数及字符串分割代码
May 28 Python
Python操作Excel之xlsx文件
Mar 24 Python
python 实现在Excel末尾增加新行
May 02 Python
使用Selenium破解新浪微博的四宫格验证码
Oct 19 Python
python多进程使用及线程池的使用方法代码详解
Oct 24 Python
对python的输出和输出格式详解
Dec 08 Python
python中pip的使用和修改下载源的方法
Jul 08 Python
Django结合ajax进行页面实时更新的例子
Aug 12 Python
python3常用的数据清洗方法(小结)
Oct 31 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
Feb 15 Python
python如何将图片转换素描画
Sep 08 Python
python 模块重载的五种方法
Apr 24 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 error_log 函数的使用
2009/04/13 PHP
Yii入门教程之Yii安装及hello world
2014/11/25 PHP
php生成html文件方法总结
2014/12/01 PHP
PHP中捕获超时事件的方法实例
2015/02/12 PHP
PHP入门教程之PHP操作MySQL的方法分析
2016/09/11 PHP
php提供实现反射的方法和实例代码
2019/09/17 PHP
JQuery中html()方法使用不当带来的陷阱
2011/04/07 Javascript
javascript通过class来获取元素实现代码
2013/02/20 Javascript
jQuery页面图片伴随滚动条逐渐显示的小例子
2013/03/21 Javascript
JQuery筛选器全系列介绍
2013/08/27 Javascript
验证手机号码的JS方法分享
2013/09/10 Javascript
Jsonp post 跨域方案
2015/07/06 Javascript
JS实现的通用表单验证插件完整实例
2015/08/20 Javascript
jQuery+PHP+MySQL二级联动下拉菜单实例讲解
2015/10/27 Javascript
JavaScript实现斗地主游戏的思路
2016/02/29 Javascript
自己动手制作基于jQuery的Web页面加载进度条插件
2016/06/03 Javascript
微信小程序开发之从相册获取图片 使用相机拍照 本地图片上传
2017/04/18 Javascript
使用Vue开发动态刷新Echarts组件的教程详解
2018/03/22 Javascript
vue-cli2.9.3 详细教程
2018/04/23 Javascript
webstorm和.vue中es6语法报错的解决方法
2018/05/08 Javascript
vue 国际化 vue-i18n 双语言 语言包
2018/06/07 Javascript
element-ui中的select下拉列表设置默认值方法
2018/08/24 Javascript
vue 弹框产生的滚动穿透问题的解决
2018/09/21 Javascript
Electron-vue脚手架改造vue项目的方法
2018/10/22 Javascript
jQuery时间戳和日期相互转换操作示例
2018/12/07 jQuery
小程序表单认证布局及验证详解
2020/06/19 Javascript
Python捕捉和模拟鼠标事件的方法
2015/06/03 Python
Python的Twisted框架中使用Deferred对象来管理回调函数
2016/05/25 Python
python3+PyQt5实现支持多线程的页面索引器应用程序
2018/04/20 Python
python hashlib加密实现代码
2019/10/17 Python
称象教学反思
2014/02/03 职场文书
小学教师师德演讲稿
2014/05/06 职场文书
品酒会策划方案
2014/05/26 职场文书
2014领导班子正风肃纪思想汇报
2014/09/18 职场文书
2016年校园重阳节广播稿
2015/12/18 职场文书
详解在OpenCV中如何使用图像像素
2022/03/03 Python