python:自动化处理ppt演示文稿
将ppt中的文字导出为doc文件
#将ppt中所有文字另存为doc文档
def demo_Func():
    word_file=Document()
    file_path='C:\\Users\\14486\\Desktop\\测试文件\\左\\4.Python数据存储.pptx'
    ppt=Presentation(file_path)#打开指定路径的演示文稿
    for i in ppt.slides:  #遍历所有幻灯片  sliders是所有幻灯片的集合
        for j in i.shapes: #shapes幻灯片中所有形状的集合   集合中的每一个元素是一个shape对象,代表一个形状
            if j.has_text_frame:
                text_frame=j.text_frame   #获取文本框
                for paragraph in text_frame.paragraphs:  #获取文本框所有段落
                    word_file.add_paragraph(paragraph.text) #将所有段落放入document对象
    save_path='C:\\Users\\14486\\Desktop\\测试文件\\左\\ppt保存文件.docx'
    word_file.save(save_path)将ppt导出为jpg格式图片和pdf文件
from pptx import Presentation
from docx import Document
import win32com.client as win32   #用与调用ppt程序的开发接口
from pathlib import Path
#导出为图片和pdf文件
def demo_Func2():
    ppt_path=Path('C:\\Users\\14486\\Desktop\\测试文件\\左\\4.Python数据存储.pptx')
    ppt_app=win32.gencache.EnsureDispatch('PowerPoint.Application')#打开一个ppt程序窗口
    ppt=ppt_app.Presentations.Open(ppt_path)  #打开指定路径下的演示文档
    jpg_path=ppt_path.with_suffix('.jpg')#生成路径
    pdf_path=ppt_path.with_suffix('.pdf')
    ppt.SaveAs(jpg_path,17)  #17表示以jpg格式保存
    ppt.SaveAs(pdf_path,32)  #32表示以pdf格式保存
    ppt.Close()
    ppt_app.Quit()
读取图文制作演示文稿
from pathlib import Path
from openpyxl import load_workbook  #用于读取工作簿
#以下导入python-pptx的各种功能,创建演示文稿,设置单位,颜色值,对齐方式,形状
from pptx import Presentation
from pptx.util import Cm,Pt
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_PARAGRAPH_ALIGNMENT,MSO_VERTICAL_ANCHOR
from pptx.enum.shapes import MSO_SHAPE_TYPE
#读取图文素材制作演示文稿
def demo_Func3():
    src_folder=Path('C:\\Users\\14486\\Desktop\\测试文件\\左\\')
    ppt_file=Presentation()
    sl_w=Cm(40)
    sl_h=Cm(22,5)
    ppt_file.slide_width=sl_w
    ppt_file.slide_height=sl_h
    wb=load_workbook(src_folder/'产品信息表.xlsx')
    ws=wb.active
    for row in range(2,ws.max_row+1):
        #创建幻灯片
        slide=ppt_file.slides.add_slide(ppt_file.slide_layouts[6])
        #表示插入一张不带任何占位符的空白幻灯片,参数对应的是幻灯片版式,其表示空白幻灯片
        slide.background.fill.solid()#设置幻灯片背景为纯色填充
        slide.background.fill.fore_color.rgb=RGBColor(230,230,230) #设置填充颜色为灰色
        #插入一个矩形做装饰
        rec=slide.shapes.add_shape(MSO_SHAPE_TYPE.RECTANGLE,left=0,top=(sl_h-Cm(10))//2,width=sl_w,height=Cm(10))
        rec.fill.solid()
        rec.fill.fore_color.rgb=RGBColor(197,90,17)
        rec.line.fill.background()
        #插入产品图片
        pic_path=src_folder/(str(ws.cell(row=row,column=1).value)+'.png')
        pic=slide.shapes.add_picture(str(pic_path),left=Cm(2),top=0,width=Cm(15))
        pic.top=(sl_h-pic.height)//2
        pic.click_action.hyperlink.address=str(ws.cell(row=row,column=5).value)
        #插入产品信息的文本
        txt=slide.shapes.add_textbox(left=sl_w/2,top=0,width=sl_w/2,height=sl_h)
        txt.text_frame.vertical_anchor=MSO_VERTICAL_ANCHOR.MIDOLE
        txt.text_frame.word_wrap=True
        for col in range(2,5):
            p=txt.text_frame.add_paragraph()
            p.text=f'【{ws.cell(row=1,column=col).value}】{ws.cell(row=row,column=col).value}\n'
            p.alignment=PP_PARAGRAPH_ALIGNMENT.LEFT
            p.font.name='华文中宋'
            p.font.size=Pt(28)
            p.font.color.rgb=RGBColor(255,255,255)
    ppt_file.save('C:\\Users\\14486\\Desktop\\测试文件\\左\\产品介绍.pptx')
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号