Python实现在PPT中添加或删除图片

作者:

文章目录
  • 安装 Free Spire.Presentation for Python库。 pip install Spire.Presentation.Free
  • 使用免费Python库提供的 ISlide.Shapes.AppendEmbedImageByImageData() 方法,可实现在指定幻灯片中添加图片。操作如下: 创建PPT演示文档,并通过 Presentation.Slides[index] 属性获取其中指定幻灯片。 加载一张图片,然后指定图片在幻灯片上的位置。 通过 ISlide.Shapes.AppendEmbedImageByPath() 方法在幻灯片中添加图片。 使用 Presentation.SaveToFile() 方法保存生成的演示文稿。 Python代码: from spire.presentation.common import * import math from spire.presentation import * # 创建PPT演示文稿 presentation = Presentation() # 获取第一张幻灯片 slide = presentation.Slides[0] # 加载一张图片 imageFile = “logo.png” # 指定图片在幻灯片中的位置 left = math.trunc(presentation.SlideSize.Size.Width / float(2)) -100 rect1 = RectangleF.FromLTRB (left, 120, 180 + left, 300) # 在幻灯片上添加嵌入式图片 image = slide.Shapes.AppendEmbedImageByPath (ShapeType.Rectangle, imageFile, rect1) # 设置图片的外框线为无填充效果 image.Line.FillType = FillFormatType.none # 保存PPT文档 presentation.SaveToFile(“PPT图片.pptx”, FileFormat.Pptx2016) presentation.Dispose() 生成文档:
  • 要删除PowerPoint幻灯片中的所有图片则需要先遍历幻灯片中的每一个形状,找出形状中的图片类型 (SlidePicture),再通过 ISlide.Shapes.Remove(Index) 来删除图片。操作如下: 使用 Presentation.LoadFromFile() 方法加载PPT文档。 通过 Presentation.Slides[index] 属性获取指定幻灯片。 使用 for 循环来遍历指定幻灯片上的所有形状。 判断当前形状是否是为 SlidePicture 类型(图片),如果是,则使用 ISlide.Shapes.Remove(Index) 来删除图片。 使用 Presentation.SaveToFile() 方法保存生成的演示文稿。 Python代码: from spire.presentation.common import * from spire.presentation import * # 加载PPT文件 ppt = Presentation() ppt.LoadFromFile(“PPT图片.pptx”) # 获取第一张幻灯片 slide = ppt.Slides[0] # 遍历幻灯片中的所有形状 for i in range(slide.Shapes.Count – 1, -1, -1): # 判断当前形状是否为图片(SlidePicture) if isinstance(slide.Shapes[i], SlidePicture): # 如果是图片,则从幻灯片中移除该形状 slide.Shapes.RemoveAt(i) # 保存结果文件 ppt.SaveToFile(“删除PPT图片.pptx”, FileFormat.Pptx2016) ppt.Dispose()
  • Python向PPT中批量插入图片 1.用python-pptx模块 实现的过程也很简单,主要是导入指定模块,利用os来遍历所有的图片,然后创建ppt对象,插入空白的slide,然后通过循环的办法把图片插入到幻灯片中。根据图片距离左、上、高度来最终确定其位置。 from pptx import Presentation from pptx.util import Inches import os # 获取当前目录下所有的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’) 2.利用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, image)这行代码中,前2个数是是图片距离左侧和右侧的距离。 到此这篇关于Python实现在PPT中添加或删除图片的文章就介绍到这了,更多相关Python PPT图片内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: python实现pptx批量向PPT中插入图片 Python实现向PPT中插入表格与图片的方法详解 Python PyMuPDF实现PDF与图片和PPT相互转换 详解Python如何向PPT中批量插入图片 基于Python开发PPT图片提取与合并工具 如何使用Python实现PPT批量转图片 使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)
  • 目录
    • 环境准备
    • Python 在PPT幻灯片中添加图片
    • Python 删除PPT幻灯片中的图片
    • 方法补充

    在数字化办公时代,Python已成为自动化处理Office文档的首选工具。针对PowerPoint图片管理,使用Python能实现批量操作多个PPT文件,并减少人工操作的失误。本文将介绍如何使用免费Python库在PPT文档中添加图片,或删除PPT文档中的图片

    安装 Free Spire.Presentation for Python库。

    pip install Spire.Presentation.Free

    使用免费Python库提供的 ISlide.Shapes.AppendEmbedImageByImageData() 方法,可实现在指定幻灯片中添加图片。操作如下:

    创建PPT演示文档,并通过 Presentation.Slides[index] 属性获取其中指定幻灯片。

    加载一张图片,然后指定图片在幻灯片上的位置。

    通过 ISlide.Shapes.AppendEmbedImageByPath() 方法在幻灯片中添加图片。

    使用 Presentation.SaveToFile() 方法保存生成的演示文稿。

    Python代码:

    from spire.presentation.common import *
    import math
    from spire.presentation import *
    
    # 创建PPT演示文稿
    presentation = Presentation()
    
    # 获取第一张幻灯片
    slide = presentation.Slides[0]
    
    # 加载一张图片
    imageFile = "logo.png"
    
    # 指定图片在幻灯片中的位置
    left = math.trunc(presentation.SlideSize.Size.Width / float(2)) -100
    rect1 = RectangleF.FromLTRB (left, 120, 180 + left, 300)
    
    # 在幻灯片上添加嵌入式图片
    image = slide.Shapes.AppendEmbedImageByPath (ShapeType.Rectangle, imageFile, rect1)
    
    # 设置图片的外框线为无填充效果
    image.Line.FillType = FillFormatType.none
    
    # 保存PPT文档
    presentation.SaveToFile("PPT图片.pptx", FileFormat.Pptx2016)
    presentation.Dispose()
    

    生成文档:

    要删除PowerPoint幻灯片中的所有图片则需要先遍历幻灯片中的每一个形状,找出形状中的图片类型 (SlidePicture),再通过 ISlide.Shapes.Remove(Index) 来删除图片。操作如下:

    使用 Presentation.LoadFromFile() 方法加载PPT文档。

    通过 Presentation.Slides[index] 属性获取指定幻灯片。

    使用 for 循环来遍历指定幻灯片上的所有形状。

    判断当前形状是否是为 SlidePicture 类型(图片),如果是,则使用 ISlide.Shapes.Remove(Index) 来删除图片。

    使用 Presentation.SaveToFile() 方法保存生成的演示文稿。

    Python代码:

    from spire.presentation.common import *
    from spire.presentation import *
    
    # 加载PPT文件
    ppt = Presentation()
    ppt.LoadFromFile("PPT图片.pptx")
    
    # 获取第一张幻灯片
    slide = ppt.Slides[0]
    
    # 遍历幻灯片中的所有形状
    for i in range(slide.Shapes.Count - 1, -1, -1):
       
        # 判断当前形状是否为图片(SlidePicture)
        if isinstance(slide.Shapes[i], SlidePicture):
           
            # 如果是图片,则从幻灯片中移除该形状
            slide.Shapes.RemoveAt(i)
    
    # 保存结果文件
    ppt.SaveToFile("删除PPT图片.pptx", FileFormat.Pptx2016)
    ppt.Dispose()
    

    Python向PPT中批量插入图片

    1.用python-pptx模块

    实现的过程也很简单,主要是导入指定模块,利用os来遍历所有的图片,然后创建ppt对象,插入空白的slide,然后通过循环的办法把图片插入到幻灯片中。根据图片距离左、上、高度来最终确定其位置。

    from pptx import Presentation
    from pptx.util import Inches
    import os
     
    # 获取当前目录下所有的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')

    2.利用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, image)这行代码中,前2个数是是图片距离左侧和右侧的距离。

    到此这篇关于Python实现在PPT中添加或删除图片的文章就介绍到这了,更多相关Python PPT图片内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

    您可能感兴趣的文章:

    • python实现pptx批量向PPT中插入图片
    • Python实现向PPT中插入表格与图片的方法详解
    • Python PyMuPDF实现PDF与图片和PPT相互转换
    • 详解Python如何向PPT中批量插入图片
    • 基于Python开发PPT图片提取与合并工具
    • 如何使用Python实现PPT批量转图片
    • 使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)

    站内搜索