使用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 03 Python
Python实现两个list对应元素相减操作示例
Jun 09 Python
Python各类图像库的图片读写方式总结(推荐)
Feb 23 Python
windows下python 3.6.4安装配置图文教程
Aug 21 Python
用Python编写一个简单的CS架构后门的方法
Nov 20 Python
用python求一个数组的和与平均值的实现方法
Jun 29 Python
python Kmeans算法原理深入解析
Aug 23 Python
python爬虫开发之urllib模块详细使用方法与实例全解
Mar 09 Python
Python3标准库之threading进程中管理并发操作方法
Mar 30 Python
Python写捕鱼达人的游戏实现
Mar 31 Python
python中tab键是什么意思
Jun 18 Python
解决python存数据库速度太慢的问题
Apr 23 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中养成7个面向对象的好习惯
2010/01/28 PHP
微信支付PHP SDK之微信公众号支付代码详解
2015/12/09 PHP
Symfony2之session与cookie用法小结
2016/03/18 PHP
非常漂亮的JS代码经典广告
2007/10/21 Javascript
utf-8编码引起js输出中文乱码的解决办法
2010/06/23 Javascript
TreeView 用法(有代码)(asp.net)
2011/07/15 Javascript
使用 Node.js 做 Function Test实现方法
2013/10/25 Javascript
JQuery操作iframe父页面与子页面的元素与方法(实例讲解)
2013/11/20 Javascript
jQuery实现的登录浮动框效果代码
2015/09/26 Javascript
深入理解JavaScript中的对象复制(Object Clone)
2016/05/18 Javascript
第一次接触神奇的Bootstrap导航条
2016/08/09 Javascript
AngularJS过滤器filter用法分析
2016/12/11 Javascript
Bootstrap Table使用整理(四)之工具栏
2017/06/09 Javascript
JavaScript事件方法(实例讲解)
2017/06/27 Javascript
JS自定义滚动条效果简单实现代码
2020/10/27 Javascript
基于VUE.JS的移动端框架Mint UI的使用
2017/10/11 Javascript
Vue Promise的axios请求封装详解
2018/08/13 Javascript
JQuery Ajax执行跨域请求数据的解决方案
2018/12/10 jQuery
javascript实现简易的计算器
2020/01/17 Javascript
python实现无证书加密解密实例
2014/10/27 Python
Python脚本实时处理log文件的方法
2016/11/21 Python
Python学习之用pygal画世界地图实例
2017/12/07 Python
pygame游戏之旅 添加游戏介绍
2018/11/20 Python
python print输出延时,让其立刻输出的方法
2019/01/07 Python
Python操作MySQL数据库的两种方式实例分析【pymysql和pandas】
2019/03/18 Python
详解程序意外中断自动重启shell脚本(以Python为例)
2019/07/26 Python
Python安装并操作redis实现流程详解
2020/10/13 Python
css3实现图片遮罩效果鼠标hover以后出现文字
2013/11/05 HTML / CSS
新西兰网上购物,折扣店:BestDeals.co.nz
2019/03/20 全球购物
加拿大拼图大师:Puzzle Master
2020/12/28 全球购物
C#公司笔试题
2014/03/28 面试题
linux面试题参考答案(7)
2012/10/29 面试题
央视元宵晚会主持串词
2014/03/25 职场文书
低碳环保标语
2014/06/12 职场文书
2019财务转正述职报告
2019/06/27 职场文书
收音机爱好者玩机13年,简评其使用过的19台收音机
2022/04/30 无线电