使用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 client使用http post 到server端的代码
Feb 10 Python
利用Python爬取微博数据生成词云图片实例代码
Aug 31 Python
Python 做曲线拟合和求积分的方法
Dec 29 Python
Django框架自定义模型管理器与元选项用法分析
Jul 22 Python
关于Python内存分配时的小秘密分享
Sep 05 Python
Python queue队列原理与应用案例分析
Sep 27 Python
python 下 CMake 安装配置 OPENCV 4.1.1的方法
Sep 30 Python
numpy实现神经网络反向传播算法的步骤
Dec 24 Python
Python序列化pickle模块使用详解
Mar 05 Python
python requests.get带header
May 05 Python
python用什么编辑器进行项目开发
Jun 17 Python
python中类与对象之间的关系详解
Dec 16 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 GeoIP的使用教程
2011/03/09 PHP
使用php 获取时间今天明天昨天时间戳的详解
2013/06/20 PHP
使用PHP实现生成HTML静态页面
2015/11/18 PHP
prototype 1.5 &amp; scriptaculous 1.6.1 学习笔记
2006/09/07 Javascript
javascript确认框的三种使用方法
2013/12/17 Javascript
jquery ajax,ashx,json的用法总结
2014/02/12 Javascript
EasyUI,点击开启编辑框,并且编辑框获得焦点的方法
2015/03/01 Javascript
鼠标事件的screenY,pageY,clientY,layerY,offsetY属性详解
2015/03/12 Javascript
JQuery创建DOM节点的方法
2015/06/11 Javascript
基于jQuery实现Div窗口震动特效代码-代码简单
2015/08/28 Javascript
jQuery获取单击节点对象的方法
2016/06/02 Javascript
Bootstrap前端开发案例二
2016/06/17 Javascript
jQuery动态移除和添加背景图片的方法详解
2017/03/07 Javascript
详解Vue.js组件可复用性的混合(mixin)方式和自定义指令
2017/09/06 Javascript
第一个Vue插件从封装到发布
2017/11/22 Javascript
vue axios请求超时的正确处理方法
2018/04/02 Javascript
vue-cli项目根据线上环境分别打出测试包和生产包
2018/05/23 Javascript
解决VUE中document.body.scrollTop为0的问题
2018/09/15 Javascript
解决vuejs 使用value in list 循环遍历数组出现警告的问题
2018/09/26 Javascript
node实现分片下载的示例代码
2018/10/17 Javascript
React 使用Hooks简化受控组件的状态绑定
2019/03/18 Javascript
keep-alive保持组件状态的方法
2020/12/02 Javascript
Python 爬虫图片简单实现
2017/06/01 Python
图解Python变量与赋值
2018/04/03 Python
tensorflow模型保存、加载之变量重命名实例
2020/01/21 Python
python中68个内置函数的总结与介绍
2020/02/24 Python
python-xpath获取html文档的部分内容
2020/03/06 Python
Python多线程:主线程等待所有子线程结束代码
2020/04/25 Python
HTML5 Geolocation API的正确使用方法
2018/12/04 HTML / CSS
应届本科生推荐信范文
2013/12/25 职场文书
劳动模范事迹材料
2014/01/19 职场文书
《商鞅南门立木》教学反思
2014/02/16 职场文书
水污染治理工程专业自荐信
2014/06/21 职场文书
致运动员赞词
2015/07/22 职场文书
优秀班干部主要事迹材料
2015/11/04 职场文书
MySQL 常见存储引擎的优劣
2021/06/02 MySQL