当前位置:首页 > 科技

【怎么贴PPT】解放双手,使用python自动完成PPT

对于样式固定且需要每天更新的PPT,可以使用python自动完成并解放双手。以每天更新的降水预报照片为例,简单介绍一下脚本。

PPT固定格式

通常使用NCL在单个pdf中绘制包含多个图片的pdf格式的图片。要将这些图片粘贴到PPT中,必须先将pdf页面转换为png格式,然后剪切白色边缘。

从Pdf到png

此步骤主要使用fitz库

Import sys、fitz

Import OS

Import datetime

Defpymupdf _ fitz (pdfpath、imagepath) :

# pdfPath是pdf图片文件的完整目录

# imagePath是输出png图片目录

StartTime_pdf2img=da() #开始时间

打印(' imagepath=' imagepath)

PdfDoc=(pdfPath)

For pg in range):

Print('page={})。format(pg))

页面=pdf doc [pg]

Rotate=int(-90)

#角度尺寸的缩放系数为1.3,生成分辨率为2.6的图像。

#如果不在此处设置,则默认图片大小为792X612,dpi=96

zoom _ x=1.33333333 #;1056x816) (2 - 1584x1224)

Zoom _ y=1.33333333

Mat=(zoom _ x、zoom _ y)。prerotate (rotate)

Pix=(matrix=mat,alpha=false)

If not os。(imagePath):#确认要储存图片的资料夹存在

Os.makedirs(imagePath) #图片文件夹不存在时创建

#将图像写入指定的文件夹

(操作系统)。(imagepath,' {}。png '。format (pg))

EndTime_pdf2img=da()#结束时间

Print('pdf2img时间=',(end time _ pdf 2 img-start time _ pdf 2 img))。seconds)剪切白色角

此步骤主要使用PIL库

From PIL import Image、ImageOps

#剪切图片周围的白边

Defcrop _ margin (img _ fileobj,out,padding=(0,0,0,0)) :

# img_fileobj是原始图片的完整路径

# out是输出图像的完整路径

# padding对四个边界保留执行空大小

Image=image.open (img _ fileobj)。convert ('RGB ')

Ivt _ image=imageo(图像)

Bbox=ivt_image.getbbox()

Left=bbox[0]-padding[0]

Top=bbox[1]-padding[1]

Right=bbox[2] padding[2]

Bottom=bbox[3] padding[3]

Cropped _ image=image.crop ([left,top,right,bottom])

Cropped_image.save(out)

Return以下是主要使用pptx库的PPT制作部分的介绍。需要加载的内容包括

From pptx import Presentation

From import Inches、Pt、Cm

From import MSO_ANCHOR,PP_ALIGN新的空白页面

Defnew _ page (PRS,SLD _ layout _ title _ and _ content=6):

# PRS是PPT对象

# SLD_LAYOUT_TITLE_AND_CONTENT是页面样式,您可以根据实际需要更改编号

slide _ layout=[SLD _ layout _ title _ and _ content]

幻灯片=(slide _ layout)

Return

创建Prs=Presentation() # PPT

Slide=ne

w_page(prs) # 新建空白页面

页面样式

添加图片

def Add_pic(slide, img, img_left, img_top, img_height): #slide为ppt页面对象 img_path = img #图片完整路径 left = Cm(img_left) top = Cm(img_top) pic = (img_path, left, top, height=Cm(img_height))

图片的相关参数,可以先手动贴一张图到ppt中,右键打开大小和位置,则可获取相关的大小和位置的参数信息。

图片大小及位置参数

添加文本框

def Add_txt(slide, text, text_left, text_top, text_width, text_height): # 预设位置和大小 left = Cm(text_left) top = Cm(text_top) width = Cm(text_width) height = Cm(text_height) # 添加文本框 txBox = (left, top, width, height) tf = # = MSO_ANCHOR.MIDDLE # 文本框中写入文字 para = () = text = PP_ALIGN.CENTER # = 1.5 # 1.5 倍的行距 ### 设置字体 # font = # = '微软雅黑' # 字体类型 # = True # 加粗 # = Pt(32) # 大小

与图片参数获取类似,可以现在ppt中手动添加文本框,再获取大小和位置参数

主程序伪代码示意

# @Author: Jiao B.F. # @Email: 1034745512@qq.com if __name__ == "__main__": prs = Presentation() # 新建ppt ... for i, img in enumerate(imgs): slide = new_page(prs) # 新建空白页面 print(img) valid1 = init + da(hours = i*acc) valid2 = init + da(hours = (i+1)*acc) # WRF预报 txt_info = r"{}月{:02d}日{:02d}时-{}月{:02d}日{:02d}时WRF模拟降水(UTC)".format( valid1.month, valid1.day, valid1.hour, valid2.month, valid2.day, valid2.hour ) crop_margin(img, img) # 切除白边 Add_pic(slide, img, 6.77, 0.73, 7.92) Add_txt(slide, txt_info, 6, 7.84, 13.4, 1.03) # EC预报 til = valid2.strftime("%Y-%m-%d_%H_%M_%S") ec_img = "ecplt_Single_pcp{}_{}_zoomout.png".format(acc, til) ec_full = os.(ec_dir, ec_img) txt_info = r"{}月{:02d}日{:02d}时-{}月{:02d}日{:02d}时EC预报降水(UTC)".format( valid1.month, valid1.day, valid1.hour, valid2.month, valid2.day, valid2.hour ) crop_margin(ec_full, ec_full) Add_pic(slide, ec_full, 0.43, 9.9, 7.92) Add_txt(slide, txt_info, -0.34, 17.01, 13.4, 1.03) # GFS 预报 valid2_bjt = valid2 + da(hours=8) til = valid2_bjt.strftime("%Y-%m-%d_%H_%M_%S") gfs_img = "gfsplt_Single_pcp{}_{}_zoomout.png".format(acc, til) gfs_full = os.(gfs_dir, gfs_img) if not os.(gfs_full): continue txt_info = r"{}月{:02d}日{:02d}时-{}月{:02d}日{:02d}时GFS预报降水(UTC)".format( valid1.month, valid1.day, valid1.hour, valid2.month, valid2.day, valid2.hour ) crop_margin(gfs_full, gfs_full) Add_pic(slide, gfs_full, 13.6, 9.9, 7.92) Add_txt(slide, txt_info, 12.29, 17.01, 13.4, 1.03) (';) # 保存ppt。重复运行脚本默认覆盖, # 注意不要在打开的时候运行脚本,会碰到权限的问题

1.《【怎么贴PPT】解放双手,使用python自动完成PPT》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《【怎么贴PPT】解放双手,使用python自动完成PPT》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/2544481.html

上一篇

【怎么在ppt里做时间轴】第三步,我会教你创造创造性的时间线,让PPT变得更高级。(威廉莎士比亚,创意,创意,创意,创意)

【怎么贴PPT】写好PPT,说好PPT

【怎么贴PPT】写好PPT,说好PPT

怎么贴PPT相关介绍,演示PPT常用于演示、报告、会议等多种场合。怎么样写好PPT,说好PPT,结合多年经验分享? 第一,写好PPT 首先,要明确主题和沟通对象。也就是说,你要说什么,告诉谁(不要认为这件事简单,请再三确认...

【怎么贴PPT】如何将Excel中的图表正确粘贴到PPT中

  • 【怎么贴PPT】如何将Excel中的图表正确粘贴到PPT中
  • 【怎么贴PPT】如何将Excel中的图表正确粘贴到PPT中
  • 【怎么贴PPT】如何将Excel中的图表正确粘贴到PPT中

【怎么贴PPT】PPT入门敲砖文本边角特效制作技术

  • 【怎么贴PPT】PPT入门敲砖文本边角特效制作技术
  • 【怎么贴PPT】PPT入门敲砖文本边角特效制作技术
  • 【怎么贴PPT】PPT入门敲砖文本边角特效制作技术

【怎么贴PPT】PPT演示技术——如何复制PPT模板

  • 【怎么贴PPT】PPT演示技术——如何复制PPT模板
  • 【怎么贴PPT】PPT演示技术——如何复制PPT模板
  • 【怎么贴PPT】PPT演示技术——如何复制PPT模板

【怎么贴PPT】大神的四个PPT制作经验,99%不知道!

  • 【怎么贴PPT】大神的四个PPT制作经验,99%不知道!
  • 【怎么贴PPT】大神的四个PPT制作经验,99%不知道!
  • 【怎么贴PPT】大神的四个PPT制作经验,99%不知道!

【怎么贴PPT】PPT高级玩家教程:真的要复制粘贴吗?

  • 【怎么贴PPT】PPT高级玩家教程:真的要复制粘贴吗?
  • 【怎么贴PPT】PPT高级玩家教程:真的要复制粘贴吗?
  • 【怎么贴PPT】PPT高级玩家教程:真的要复制粘贴吗?

【怎么贴PPT】618.原创PPT技术:PPT表格必须这样做才能快速、专业。

  • 【怎么贴PPT】618.原创PPT技术:PPT表格必须这样做才能快速、专业。
  • 【怎么贴PPT】618.原创PPT技术:PPT表格必须这样做才能快速、专业。
  • 【怎么贴PPT】618.原创PPT技术:PPT表格必须这样做才能快速、专业。

【怎么贴PPT】办公室提示-PPT制作中常用的复制和粘贴技术

  • 【怎么贴PPT】办公室提示-PPT制作中常用的复制和粘贴技术
  • 【怎么贴PPT】办公室提示-PPT制作中常用的复制和粘贴技术
  • 【怎么贴PPT】办公室提示-PPT制作中常用的复制和粘贴技术