使用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展示动态规则法用以解决重叠子问题的示例
Apr 02 Python
Python自动调用IE打开某个网站的方法
Jun 03 Python
python编程羊车门问题代码示例
Oct 25 Python
Python针对给定字符串求解所有子序列是否为回文序列的方法
Apr 21 Python
浅析Python四种数据类型
Sep 26 Python
对python 命令的-u参数详解
Dec 03 Python
python频繁写入文件时提速的方法
Jun 26 Python
关于Python中的向量相加和numpy中的向量相加效率对比
Aug 26 Python
tensorflow中tf.slice和tf.gather切片函数的使用
Jan 19 Python
基于keras中的回调函数用法说明
Jun 17 Python
python3中celery异步框架简单使用+守护进程方式启动
Jan 20 Python
Python中的套接字编程是什么?
Jun 21 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基于jquery的ajax技术传递json数据简单实例
2016/04/15 PHP
PHP框架laravel的.env文件配置教程
2017/06/07 PHP
javascript 极速 隐藏/显示万行表格列只需 60毫秒
2009/03/28 Javascript
JavaScript Event学习第四章 传统的事件注册模型
2010/02/07 Javascript
Node.js的包详细介绍
2015/01/14 Javascript
jQuery实现表单步骤流程导航代码分享
2015/08/28 Javascript
JS常用加密编码与算法实例总结
2016/12/22 Javascript
ajax +NodeJS 实现图片上传实例
2017/06/06 NodeJs
Node.js成为Web应用开发最佳选择的原因
2018/02/05 Javascript
详解jQuery设置内容和属性
2019/04/11 jQuery
仿vue-cli搭建属于自己的脚手架的方法步骤
2019/04/17 Javascript
微信小程序实现拖拽功能
2019/09/26 Javascript
微信小程序canvas截取任意形状的实现代码
2020/01/13 Javascript
[57:41]Secret vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[50:27]Secret vs VG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python实现删除文件但保留指定文件
2015/06/21 Python
python 捕获 shell/bash 脚本的输出结果实例
2017/01/04 Python
python实现Zabbix-API监控
2018/09/17 Python
Python Numpy 实现交换两行和两列的方法
2019/06/26 Python
Python的形参和实参使用方式
2019/12/24 Python
Django如何使用jwt获取用户信息
2020/04/21 Python
详解tensorflow2.x版本无法调用gpu的一种解决方法
2020/05/25 Python
python RSA加密的示例
2020/12/09 Python
巴西宠物商店:Cobasi
2019/04/19 全球购物
Delphi CS笔试题
2014/01/04 面试题
人力资源部经理的岗位职责
2014/03/04 职场文书
股权转让协议书范本
2014/04/12 职场文书
机关搬迁方案
2014/05/18 职场文书
小学安全教育月活动总结
2014/07/07 职场文书
市场营销毕业求职信
2014/08/07 职场文书
个人纪律作风整改措施思想汇报
2014/10/12 职场文书
餐饮服务员岗位职责
2015/02/09 职场文书
签订劳动合同通知书
2015/04/16 职场文书
礼貌问候语大全
2015/11/10 职场文书
应用最多的公文《通知》如何写?
2019/04/02 职场文书
如何解决php-fpm启动不了问题
2021/11/17 PHP