在 Python 中为 PowerPoint PPT 添加水印

水印通常用于保护文档或指定其所有权。另一方面,它们用于显示文档的状态,例如手稿、草稿等。在本文中,我们将演示如何在 PowerPoint 演示文稿中插入水印。您将学习如何在 Python 中为 PowerPoint PPT 幻灯片添加文本或图像水印。

用于向 PowerPoint 幻灯片添加水印的 Python 库

要在 PPT 幻灯片中添加或删除水印,我们将使用 Aspose.Slides for Python via .NET。该库使您能够从 Python 应用程序中无缝地创建和操作 PowerPoint 演示文稿。使用以下 pip 命令从 PyPI 安装库。

> pip install aspose.slides

在 Python 中为 PowerPoint PPT 幻灯片添加水印

有两种类型的水印可以添加到 PowerPoint 幻灯片:图像和文本。在基于图像的水印中,将图像添加到 PPT 幻灯片中。然而,在基于文本的水印的情况下,文本片段被放置在幻灯片上。以下部分明确涵盖了这两种类型的水印。

在 Python 中将文本水印添加到 PowerPoint 幻灯片

以下是在 Python 中为 PPT 幻灯片添加文本水印的步骤。

  • 首先,使用 Presentation 类加载 PowerPoint PPT/PPTX。
  • 获取要添加水印的幻灯片的参考。
  • 计算水印的位置。
  • 使用 addautoshape() 方法为水印添加新的自动形状。
  • 使用 addtextframe() 方法将文本框架添加到形状。
  • 设置水印的字体大小、颜色、顺序和旋转角度。
  • 锁定水印以避免删除或修改。
  • 最后,使用 Presentation.save(string, SaveFormat) 方法保存更新的 PowerPoint 文件。

以下代码示例演示如何将文本水印添加到 PowerPoint 幻灯片。

import aspose.slides as slides
import aspose.pydrawing as drawing

# 加载演示
with slides.Presentation("presentation.pptx") as presentation:
    # 选择幻灯片
    slide = presentation.slides[0]

    # 设置水印位置
    center = drawing.PointF(presentation.slide_size.size.width / 2, presentation.slide_size.size.height / 2)
    width = 300
    height = 300
    x = center.x - width / 2
    y = center.y - height / 2

    # 加水印
    watermarkShape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, x, y, height, width)
    watermarkShape.name = "watermark"
    watermarkShape.fill_format.fill_type = slides.FillType.NO_FILL
    watermarkShape.line_format.fill_format.fill_type = slides.FillType.NO_FILL

    # 设置水印文字、字体和颜色
    watermarkTextFrame = watermarkShape.add_text_frame("Watermark")
    watermarkPortion = watermarkTextFrame.paragraphs[0].portions[0]
    watermarkPortion.portion_format.font_height = 52        
    watermarkPortion.portion_format.fill_format.fill_type = slides.FillType.SOLID
    watermarkPortion.portion_format.fill_format.solid_fill_color.color = drawing.Color.red

    # 锁定水印避免修改
    watermarkShape.shape_lock.select_locked = True
    watermarkShape.shape_lock.size_locked = True
    watermarkShape.shape_lock.text_locked = True
    watermarkShape.shape_lock.position_locked = True
    watermarkShape.shape_lock.grouping_locked = True

    # 设置旋转
    watermarkShape.rotation = -45

    # 发回
    slide.shapes.reorder(0, watermarkShape)

    # 保存演示文稿
    presentation.save("text-watermark-slide.pptx", slides.export.SaveFormat.PPTX)

要将水印添加到所有幻灯片,您可以循环播放幻灯片或将水印添加到主幻灯片,如以下代码示例所示。

import aspose.slides as slides
import aspose.pydrawing as drawing

# 加载演示
with slides.Presentation("presentation.pptx") as presentation:
    # 选择幻灯片
    master = presentation.masters[0]

    # 设置水印位置
    center = drawing.PointF(presentation.slide_size.size.width / 2, presentation.slide_size.size.height / 2)
    width = 300
    height = 300
    x = center.x - width / 2
    y = center.y - height / 2

    # 加水印
    watermarkShape = master.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, x, y, height, width)
    watermarkShape.name = "watermark"
    watermarkShape.fill_format.fill_type = slides.FillType.NO_FILL
    watermarkShape.line_format.fill_format.fill_type = slides.FillType.NO_FILL

    # 设置水印文字、字体和颜色
    watermarkTextFrame = watermarkShape.add_text_frame("Watermark")
    watermarkPortion = watermarkTextFrame.paragraphs[0].portions[0]
    watermarkPortion.portion_format.font_height = 52        
    watermarkPortion.portion_format.fill_format.fill_type = slides.FillType.SOLID
    watermarkPortion.portion_format.fill_format.solid_fill_color.color = drawing.Color.red

    # 锁定水印避免修改
    watermarkShape.shape_lock.select_locked = True
    watermarkShape.shape_lock.size_locked = True
    watermarkShape.shape_lock.text_locked = True
    watermarkShape.shape_lock.position_locked = True
    watermarkShape.shape_lock.grouping_locked = True

    # 发回
    master.shapes.reorder(0, watermarkShape)

    # 设置旋转
    watermarkShape.rotation = -45

    # 保存演示文稿
    presentation.save("text-watermark-ppt.pptx", slides.export.SaveFormat.PPTX)

以下是添加水印后的 PowerPoint 幻灯片截图。

在 Python 中将文本水印添加到 PowerPoint 幻灯片

在 Python 中将图像水印添加到 PowerPoint 幻灯片

以下是在 Python 中将图像水印添加到 PowerPoint 幻灯片的步骤。

  • 首先,使用 Presentation 类加载 PowerPoint 演示文稿。
  • 获取要添加水印的幻灯片的参考。
  • 计算水印的位置。
  • 从文件中加载水印图像。
  • 使用 addautoshape() 方法为水印添加新形状,并将 shape.fillformat.filltype 设置为 FillType.PICTURE。
  • 使用 shape.fillformat.picturefillformat.picture.image 属性设置水印图像。
  • 设置水印顺序并锁定以避免修改。
  • 最后,使用 Presentation.save(string, SaveFormat) 方法保存更新的 PPT。

以下代码示例演示如何将图像水印添加到 PowerPoint 幻灯片。

import aspose.slides as slides
import aspose.pydrawing as drawing

# 加载演示
with slides.Presentation("presentation.pptx") as presentation:
    # 选择幻灯片
    slide = presentation.slides[0]

    # 设置水印位置
    center = drawing.PointF(presentation.slide_size.size.width / 2, presentation.slide_size.size.height / 2)
    width = 100
    height = 100
    x = center.x - width / 2
    y = center.y - height / 2

    # 加载图像
    with open("python-logo.png", "rb") as fs:
        data = fs.read()
        image = presentation.images.add_image(data)

        # 加水印
        watermarkShape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, x, y, height, width)
        watermarkShape.name = "watermark"

        # 设置水印图片
        watermarkShape.fill_format.fill_type = slides.FillType.PICTURE
        watermarkShape.fill_format.picture_fill_format.picture.image = image
        watermarkShape.fill_format.picture_fill_format.picture_fill_mode = slides.PictureFillMode.STRETCH
        watermarkShape.line_format.fill_format.fill_type = slides.FillType.NO_FILL

        # 发回
        slide.shapes.reorder(0, watermarkShape)

        # 锁定水印避免修改
        watermarkShape.shape_lock.select_locked = True
        watermarkShape.shape_lock.size_locked = True
        watermarkShape.shape_lock.text_locked = True
        watermarkShape.shape_lock.position_locked = True
        watermarkShape.shape_lock.grouping_locked = True

    # 保存演示文稿
    presentation.save("image-watermark-ppt.pptx", slides.export.SaveFormat.PPTX)

以下是添加图片水印后的PPT幻灯片截图。

在 Python 中将图像水印添加到 PowerPoint 幻灯片

在 Python 中从 PPT 幻灯片中删除水印

在前面的部分中,您一定已经注意到我们为水印形状指定了一个名称。此名称用于过滤用作水印的形状。因此,我们可以轻松访问、修改或删除水印形状。下面的代码示例展示了如何去除我们在 Python 中添加到 PPT 幻灯片中的水印。

import aspose.slides as slides
import aspose.pydrawing as drawing

# 加载演示
with slides.Presentation("text-watermark-slide.pptx") as presentation:
    # 选择幻灯片
    slide = presentation.slides[0]

    shapesToRemove=[]

    # 遍历幻灯片中的所有形状
   for i in range(len(slide.shapes)):
        shape = slide.shapes[i]

        # 如果形状是水印
        if shape.name == "watermark":                
            shapesToRemove.append(shape)

    # 遍历所有要删除的形状
   for i in range(len(shapesToRemove)):
        # 删除形状
        slide.shapes.remove(shapesToRemove[i])

    # 保存演示文稿
    presentation.save("remove-watermark.pptx", slides.export.SaveFormat.PPTX)

获得免费许可证

您可以通过请求 临时许可证 通过 .NET 使用 Aspose.Slides for Python,而不受评估限制。

结论

在本文中,您学习了如何在 Python 中为 PowerPoint 幻灯片添加水印。我们已经介绍了如何在 PPT 幻灯片中添加文本和图像水印。此外,您还了解了如何以编程方式从 PowerPoint PPT 中删除水印。此外,您可以阅读 文档 以探索 Aspose.Slides for Python 的其他功能。此外,您可以将您的查询发布到我们的 论坛

也可以看看

信息:您可能想查看 Aspose.Slides 提供的免费在线工具,以从 PowerPoint 演示文稿中 添加水印删除水印