目录
- 一、手工操作
- 二、用python-pptx模块
- 三、利用ASPose.slides这个模块
- 四、学后总结
办公自动化办公中,Python最大的优势是可以批量操作,省去了用户粘贴、复制、插入等繁琐的操作。经常做PPT的朋友都知道,把图片插入到PPT当中的固定位置是一个非常繁琐的操作,往往调整图片时耗费大量的时间和精力。如何能省时省力插入图片呢?今天我们来一php起探索一下批量插入图片到PPT的三种办法。
一、手工操作
在wpS幻灯片中,通过插入——分页插图——再选择要插入的图片,就可以批量把图片插入到PPT当中,不过此时插入的位置默认是PPT的中间位置,就是说无法按照指定的位置插入。
最后的效果如下,每张图片都会居中显示:
二、用python-pptx模块
如果用Python的话,就可以批量插入,而且可以插入指定位置,这样可以大大节省插入的时间。
实现的过程也很简单,主要是导入指定模块,利用os来遍历所有的图片,然后创建ppt对象,插入空白的slide,然后通过循环的办法把图片插入到幻灯片中。根据图片距离左、上、高度来最终确定其位置。
from pptx import Presentation from pptx.util import Inches import os #android 获取当前目录下所有的png文件 pics = [file for file in os.listdir(".") if file.endswith(".png")] # 创建一个演示文稿对象 prs = Presentation() for pic in pics: # 添加一张新幻灯片 slide_layout = prs.slide_layouts[5] # 使用空白布局 slide = prs.slides.add_slide(slide_layout) # 添加图片到幻灯片 img_path = pic left = Inches(5.8) top = Inches(2) height = Inches(3.5) slide.shapes.add_picture(img_path, left, top, height=height) # 保存演示文稿 prs.save('add-image-in-presentation.pptx')
三、利用Aspose.slides这个模块
Aspose模块的办法和python-pptx的类似。过程也是首先遍历得到图片的地址,然后创建PPT对象,通过添加空白slide,把图片插入的办法来实现。
import aspose.slides as slides import os pics = [file for file in os.listdir(".") if file.endswith(".png")] # 创建演示文稿 with slides.Presentation() as pres: # 访问第一张幻灯片 for num,pic in enumerate(pics,0): slide = pres.slides.add_empty_slide(pres.layout_slides[0]) # 从文件加载图像 with open(pic, "rb") as in_file: # 将图像添加到演示文稿的图像集 image = pres.images.add_image(in_file) # 将图像添加到幻灯片 slide.shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 20, 20, 100, 100, image) # 保存演示文稿 pres.save("add-image-in-presentation.pptx", slides.export.SaveFormat.PPTX)
slide.shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 20, 20, 100, 100, im编程age)这行代码中,前2个数是是图片距离左侧和右侧的距离。
四、学后总结
经过实验Python-pptx这个模块插入图片的速度更快,因此建议使用第二种方法。
Aspose.slides这个模块比较大,www.devze.com而且是收费的,如果是免费的生成的PPT中有水印,还要去除才可以。
到此这篇关于详解Python如何向PPThttp://www.devze.com中批量插入图片的文章就介绍到这了,更多相关Python PPT批量插入图片内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!
精彩评论