广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python实现pptx批量向PPT中插入图片
  • 845
分享到

python实现pptx批量向PPT中插入图片

2024-04-02 19:04:59 845人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录项目背景基础加亿点点细节最终代码项目结果图总结项目背景 实验结果拍摄了一组图片,数量较大,想要按顺序组合排版,比较简单的方式是在PPT中插入图片进行排版。但是PPT批量插入图片后

项目背景

实验结果拍摄了一组图片,数量较大,想要按顺序组合排版,比较简单的方式是在PPT中插入图片进行排版。但是PPT批量插入图片后,顺序打乱且不显示图片名称,每个图片单独调整位置和大小费时费力,于是想到使用工具批量操作。过去了解过python自动化办公模块,相对来说Python也是简单易用的语言,项目预计不会耗费太大精力,故尝试学习实践一番。(非专业学习笔记分享,望各位大佬不吝指导!)

数据为16组实验,每组实验重复两次,共32个图片,所有图片为正方形,
命名方式为:
1.png,1-5.png,2.png,2-5.png … … … … 16.png,16-5.png
需严格按照顺序排列

pptx批量操作图片项目原始数据图

基础

安装

pip install python-pptx

依赖

Python 2.6, 2.7, 3.3, 3.4, or 3.6

lxml

Pillow

XlsxWriter (to use charting features)

基础操作代码概览:

import collections.abc
from pptx import Presentation, util

prs = Presentation() # 实例化一个ppt演示文稿对象

blank_slide_layout = prs.slide_layouts[6] # 实例化空白模板
slide = prs.slides.add_slide(blank_slide_layout) # 向文件中添加空白页面 

img_path = './1.png' # 图片路径
# 设置图片的位置和大小 
left = util.Cm(0)
top = util.Cm(0)
width = util.Cm(4)
height = util.Cm(4)
# 在页面中插入图片
pic = slide.shapes.add_picture(img_path, left, top, width, height)

prs.save('自动生成的ppt.pptx') # 保存为文件

第一步:建立一个PPT文件

from pptx import Presentation

prs = Presentation()  # 实例化一个ppt演示文稿对象
# 中间补充具体操作添加内容
prs.save('自动生成的ppt.pptx') # 保存为文件

此时踩了第一个坑,执行结果报错:
AttributeError: module 'collections' has no attribute 'Container'
原因是python 3.10版本支持问题,此时在开头多导入一个依赖包collections.abc即可解决。

import collections.abc

第二步:新建页面

prs.slide_layouts是Presentation对象的默认页面模板,是一个数组,共11个,可通过循环查看所有默认页面模板。
prs.slides.add_slide( )方法可向文件中添加模板页面。默认第7个模板为空白页面。

n = len(prs.slide_layouts)
print("页面模板数量:", n)
for i in range(n):
	slide_layout = prs.slide_layouts[i] # 实例化模板页面
	slide = prs.slides.add_slide(slide_layout) # 向文件中添加模板页面

单独添加一个空白页面仅需如下代码:

blank_slide_layout = prs.slide_layouts[6] # 实例化空白模板页面
slide = prs.slides.add_slide(blank_slide_layout) # 向文件中添加空白页面

第三步:添加图片

添加图片可使用如下方法,

pic = slide.shapes.add_picture(img_path, left, top, width, height)

位置和大小属性默认为英制单位EMU,可转化为厘米,用如下方法定义:

from pptx import util

img_path = './1.png' # 图片路径
left = util.Cm(0)
top = util.Cm(0)
width = util.Cm(4)
height = util.Cm(4)

此时便可得到一个在左上角插入图片的页面。

加亿点点细节

1. 改变幻灯片页面大小

默认生成的页面大小为 4 : 3 大小的页面画布,可通过修改Presentation对象的属性改变大小,如下:

prs.slide_width = util.Cm(32)
prs.slide_height = util.Cm(18)

2. 根据需要排列图片位置

# 读取图片列表
pic_list = []
for i in listdir():
	if  '.png'  in i:
		pic_list.append(i)
print('图片列表:\n', pic_list)

# 设置图片的大小
width = util.Cm(4)
height = util.Cm(4)

for p in pic_list:
	# 图片路径
	img_path = './' + p
	# 设置图片位置
	n = pic_list.index(p)
	if n < 16:
		if  '-'  not  in p:
			top = util.Cm(0)
			left = util.Cm((n - 1) * 2)
		else:
			top = util.Cm(5)
			left = util.Cm(n * 2)
	else:
		if  '-'  not  in p:
			top = util.Cm(10)
			left = util.Cm((n - 17) * 2)
		else:
			top = util.Cm(15)
			left = util.Cm((n - 16) * 2)

# 在页面中插入图片
pic = slide.shapes.add_picture(img_path, left, top, width, height)

最终代码

import collections.abc
from pptx import Presentation, util
from os import listdir

# 实例化一个ppt演示文稿对象
prs = Presentation()
# 调整页面大小
prs.slide_width = util.Cm(32)
prs.slide_height = util.Cm(19)
# 实例化空白模板
blank_slide_layout = prs.slide_layouts[6]
# 向文件中添加空白页面
slide = prs.slides.add_slide(blank_slide_layout)

# 读取图片列表
pic_list = []
for i in listdir():
	if  '.png'  in i:
		pic_list.append(i)
print('图片列表:\n', pic_list)

# 设置图片的大小
width = util.Cm(4)
height = util.Cm(4)

for p in pic_list:
	# 图片路径
	img_path = './' + p
	# 设置图片位置
	n = pic_list.index(p)
	if n < 16:
		if  '-'  not  in p:
			top = util.Cm(0)
			left = util.Cm((n - 1) * 2)
		else:
			top = util.Cm(5)
			left = util.Cm(n * 2)
	else:
		if  '-'  not  in p:
			top = util.Cm(10)
			left = util.Cm((n - 17) * 2)
		else:
			top = util.Cm(15)
			left = util.Cm((n - 16) * 2)
# 在页面中插入图片
pic = slide.shapes.add_picture(img_path, left, top, width, height)

# 保存为文件
prs.save('自动生成的ppt.pptx')

项目结果图

pptx批量操作图片项目结果图

总结

到此这篇关于python实现pptx批量向PPT中插入图片的文章就介绍到这了,更多相关python pptx向PPT插图片内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: python实现pptx批量向PPT中插入图片

本文链接: https://www.lsjlt.com/news/138919.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python实现pptx批量向PPT中插入图片
    目录项目背景基础加亿点点细节最终代码项目结果图总结项目背景 实验结果拍摄了一组图片,数量较大,想要按顺序组合排版,比较简单的方式是在PPT中插入图片进行排版。但是PPT批量插入图片后...
    99+
    2022-11-13
  • python怎么实现pptx批量向PPT中插入图片
    这篇“python怎么实现pptx批量向PPT中插入图片”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python怎么实现p...
    99+
    2023-06-29
  • Python如何实现向PPT中插入表格与图片
    这篇文章主要介绍“Python如何实现向PPT中插入表格与图片”,在日常操作中,相信很多人在Python如何实现向PPT中插入表格与图片问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python如何实现向PP...
    99+
    2023-06-30
  • Python实现向PPT中插入表格与图片的方法详解
    目录插入表格插入图片上一章节学习了如何在 PPT 中添加段落以及自定义段落(书写段落的内容以及样式的调整),今天的章节将学习在 PPT 中插入表格与图片以及在表格中插入内容。 废话不...
    99+
    2022-11-11
  • Java中Easyexcel 实现批量插入图片功能
    目录1 Maven依赖2 PictureModel3CustomPictureHandler4 调试代码5 调试结果注:各位今天给大家分享Easyexcel 实现批量插入图片的问题,...
    99+
    2022-11-13
  • python实现图片批量压缩
    目录第一种 一:安装包二:导入包三:获取图片文件的大小四:输出文件夹下的文件五:压缩文件到指定大小,我期望的是150KB,step和quality可以修改到最合适的数值六:...
    99+
    2022-11-12
  • Java实现百万级数据量向MySQL批量插入
    业务背景: 大数据向mysql表同步百万级数量,我们需要将大数据表里同步过来的数据分别向三张业务表做数据同步,最终将业务表的数据展示给前台进行相关业务操作。 数据量级 大数据表:700w数据量 三张业务表分别需要同步:23w、80w、680...
    99+
    2023-08-25
    mysql java mybatis
  • python怎么实现图片批量压缩
    这篇文章主要介绍python怎么实现图片批量压缩,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型)、long(长整型)和float(浮...
    99+
    2023-06-14
  • MyBatis中怎么实现批量插入
    这篇文章将为大家详细讲解有关MyBatis中怎么实现批量插入,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。plaincopy<insert ...
    99+
    2022-10-18
  • Mysql中怎么实现批量插入
    本篇文章为大家展示了Mysql中怎么实现批量插入,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 1.创建测试表:create table...
    99+
    2022-10-18
  • python通过opencv实现批量剪切图片
    上一篇文章中,我们介绍了python实现图片处理和特征提取详解,这里我们再来看看Python通过OpenCV实现批量剪切图片,具体如下。 做图像处理需要大批量的修改图片尺寸来做训练样本,为此本程序借助ope...
    99+
    2022-06-04
    批量 图片 python
  • Python批量添加图片水印的实现
    目录一、前言二、文字水印三、图片水印一、前言 现在盗图是非常常见的事情,许多人在使用图片时都不会标注图片的出处或者提及作者,这个时候水印就是个很好的东西了。我们可以给图片添加水印后再...
    99+
    2022-11-13
  • mysql中怎么实现循环批量插入
    mysql中怎么实现循环批量插入,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。数据结构寻思着分页时标准列分主键列、索引列、普通列3种场景,...
    99+
    2022-10-18
  • Python实现从PPT中导出高分辨率图片
    总结为:改注册表。 顺手写个脚本: import tkinter as tk from tkinter import ttk import winreg from tkinter ...
    99+
    2023-05-19
    Python实现从PPT导出图片 Python PPT导出图片 Python PPT 图片
  • Python操控mysql批量插入数据的实现方法
    在Python中,通过pymysql模块,编写简短的脚本,即方便快捷地控制MySQL数据库 一、连接数据库         使用的函数:...
    99+
    2022-05-13
    Python mysql批量插入数据 python MySQL 批量插入
  • Python实现批量识别图片文字并存为Excel
    目录一、背景二、需求三、实战1.安装模块2.识别一张图片3.批量识别图片4.保存数据一、背景 大家好,我是J哥。 也许你还记得,前不久复旦大学一博士生写了130行Python代码,批...
    99+
    2022-11-11
  • 基于Python实现批量缩放图片(视频)尺寸
    目录方法一方法二方法三方法四(FFmpeg)方法一 在 Pillow 中,resize() 方法会强制将图片缩放到指定的大小,可能会导致图片变形或失真;而 thumbnail() 方...
    99+
    2023-03-24
    Python缩放图片尺寸 Python缩放视频尺寸 Python缩放尺寸
  • 基于Python如何实现批量缩放图片尺寸
    今天小编给大家分享一下基于Python如何实现批量缩放图片尺寸的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。方法一在 Pil...
    99+
    2023-07-05
  • python数据库批量插入数据的实现(executemany的使用)
    正常情况下往数据库多张表中批量插入1000条数据,若一条一条insert插入,则调用sql语句查询插入需要执行几千次,花费时间长 现使用cursor.executemany(sql,args) ,可对数据进行批量插...
    99+
    2022-06-02
    python数据库批量插入 python 批量插入
  • Python技巧之实现批量统一图片格式和尺寸
    目录前言Python模块之Image的应用示例图片批量转换和尺寸调整代码示例前言 大家在工作的时候是不是都会接触到很多的图片,为了满足不同的需求: 兼容性:不同设备和应用程序可能支持...
    99+
    2023-05-19
    Python转换图片格式 Python统一图片尺寸 Python图片格式 Python图片尺寸 Python图片
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作