最近实习需要对若干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
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
手机扫一扫
移动阅读更方便
你可能感兴趣的文章