首页 > 编程语言 >【小沐学写作】PPT、PDF文件添加水印(Python)

【小沐学写作】PPT、PDF文件添加水印(Python)

时间:2024-01-02 23:31:57浏览次数:37  
标签:Python 水印 slides 小沐学 watermarkShape 文本框 PPT 幻灯片

1、简介

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

2、ppt添加水印

2.1 PowerPoint幻灯片母版

https://support.microsoft.com/zh-cn/office/%E5%90%91%E5%B9%BB%E7%81%AF%E7%89%87%E6%B7%BB%E5%8A%A0%E6%B0%B4%E5%8D%B0-1246244d-f465-4e4f-b9f9-49acdae00ff1

在 PowerPoint 中,可以在幻灯片中放置文本背景以获取该水印效果。 步骤简述如下:

  1. 若要向所有幻灯片添加水印,选择“视图”>“幻灯片母版”。 滚动到左侧缩略图窗格的顶部,选择第一项“幻灯片母版”。
  2. 选择“插入”>“文本框”,然后在幻灯片母版上单击并拖动鼠标,画出文本框。
  3. 在文本框中键入水印文字(如“草稿”)。
  4. 若要更改水印文本的对齐方式,请在文本框顶部单击并按住旋转图柄,然后向左或向右移动鼠标。
  5. 选中文本框中的文本。 选择浅色字体填充颜色,然后对字体和样式进行任何其他更改。 (如果看不到“ 格式 ”选项卡,请确保已选择文本框。)
  6. 退出“幻灯片母版”。 除标题页外的所有幻灯片都会具有该文本。

详细步骤如下:

  • 1、打开ppt,在菜单栏找到“视图”——“幻灯片母版” 在这里插入图片描述

  • 2、打开后选择需要加水印的版式。如果想给所有页面都加上水印,可以选择母版,就是最上面那个。 在这里插入图片描述

  • 3、选择“插入”>“文本框”,然后在幻灯片母版上单击并拖动鼠标,画出文本框。在文本框中键入水印文字(如“内部资料”)。并按住旋转图柄向左或向右移动鼠标。 在这里插入图片描述

  • 4、退出“幻灯片母版”。一般所有幻灯片都会具有该文本。 在这里插入图片描述

<font color=blue>这个方法有一个缺点,就是添加的水印容易被遮挡。

2.2 iSlide插件(收费)

https://www.islide.cc/

iSlide 是一款基于 PPT 的插件工具,包含 52 个设计辅助功能,9 大在线资源库,超 50 万专业 PPT 模板/素材 支持 macOS 和 Windows 系统(兼容 Office 和 WPS)

2.2.1 iSlide简介

iSlide 专门针对 PPT 编辑过程中的问题,通过功能、模板及课程学习的方式,帮助用户做出改变, 更高效的创建专业 PPT 演示文档。 在这里插入图片描述 即装即用,与 PPT/WPS 软件无缝对接,下载模板直接插入 PPT/WPS 演示文档;简单快捷,会使用 PPT 就能使用 iSlide,节约学习成本。 在这里插入图片描述

2.2.2 iSlide定价

在这里插入图片描述

2.2.3 iSlide水印

借助iSlide插件的【增删水印】功能。批量添加和删除页面水印,可将页面上选中的任意元素(文本框,图形,图片,图标,图表,表格)批量添加到所有页面或指定的页面,并保持位置不变。

  1. 插入水印到PPT中;

  2. 打开【增删水印】,右键点击选中水印,【增加水印】并点击【使用所选形状】; 在这里插入图片描述

  3. 选择需要添加水印的页面,比如【所选幻灯片】;编辑好水印的内容,通常是文本框,形状,或插入的图片。选择要应用成水印的内容,点击增删水印面板中的“应用”按钮,可以快速将水印内容复制到所有幻灯片页面(或指定页面)。 在这里插入图片描述

  4. 对于已增加的水印也可以通过“删除水印”的选项,快速清除。打开【增删水印】,左键点击选中水印,【删除水印】并点击【使用所选形状】;选择需要删除水印的页面,比如【所有幻灯片】

<font color=blue>iSlide添加的水印会在最上层,不会被遮挡。

2.3 Python代码

2.3.1 Aspose.Slides for Python(收费)

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

  • (1)使用以下 pip 命令从 PyPI 安装库。
pip install aspose.slides
  • (2)实现步骤:
    • 首先,使用 Presentation 类加载 PowerPoint PPT/PPTX。
    • 获取要添加水印的幻灯片的参考。
    • 计算水印的位置。
    • 使用 addautoshape() 方法为水印添加新的自动形状。
    • 使用 addtextframe() 方法将文本框架添加到形状。
    • 设置水印的字体大小、颜色、顺序和旋转角度。
    • 锁定水印以避免删除或修改。
    • 最后,使用 Presentation.save(string, SaveFormat) 方法保存更新的 PowerPoint 文件。
  • (3)测试代码如下:

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

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

    # 设置水印位置
    center = drawing.PointF(presentation.slide_size.size.width / 2, presentation.slide_size.size.height / 2)
    width = 600
    height = 500
    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

    print(dir(drawing.Color))
    # 设置水印文字、字体和颜色
    watermarkTextFrame = watermarkShape.add_text_frame("内部资料2023年")
    watermarkPortion = watermarkTextFrame.paragraphs[0].portions[0]
    watermarkPortion.portion_format.font_height = 91        
    watermarkPortion.portion_format.fill_format.fill_type = slides.FillType.SOLID
    watermarkPortion.portion_format.fill_format.solid_fill_color.color = drawing.Color.light_gray

    # 锁定水印避免修改
    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("d:\\out.pptx", slides.export.SaveFormat.PPTX)

测试结果如下: 在这里插入图片描述

结语

如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;╮( ̄▽ ̄)╭ 如果您感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O??? 如果您需要相关功能的代码定制化开发,可以留言私信作者;(✿◡‿◡) 感谢各位大佬童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!!

标签:Python,水印,slides,小沐学,watermarkShape,文本框,PPT,幻灯片
From: https://blog.51cto.com/fish/9073680

相关文章

  • 微软的一些公开课,Python、机器学习、SQL、AI,全部免费
    大家好,我是老章,刷X看到一位博主AlifHossain⚡@alifcoder总结了微软的一些公开课,全部免费,蛮不错的。感兴趣可以学一波,还能领徽章。1.机器学习简介本课程是学习机器学习基础知识和用例的好方法。→11个模块→2.5小时→适合初学者→免费徽章链接:https://learn.micros......
  • python之bytes与str互转
    fromhex()bytes.fromhex()是一个内置函数,用于从十六进制字符串创建字节串(bytes)对象。fromhex()方法接受一个十六进制字符串作为输入,并将其转换为对应的字节串。输入的十六进制字符串可以包含数字0-9和小写字母a-f(或大写字母A-F)。以下是使用bytes.fromhex()的示例代码:hex_stri......
  • python初试七
    前面的文章研究了Django最主要的几个方面:数据库,模板,动态生成页面等。但都是使用pythonmanage.pyrunserver来运行服务器。这是一个实验性的web服务器,不适用于正常的站点运行。我们需要一个可以稳定而持续的服务器。这个服务器负责监听http端口,将收到的请求交给Django处理,将Django......
  • Python+Selenium实现UI自动化
    自动化测试:自动化测试是把以人为驱动的测试行为转化成机器执行的一种过程,通常在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较,再此过程中,为了节省人力,时间或硬件资源,提高测试效率,便引用了自动化测试的概念Selenium:是......
  • Python爬虫 - 使用代理IP池维护虚拟用户
    在进行Web爬取时,使用代理IP是一种常见的策略,它可以帮助我们隐藏真实IP地址,绕过网站的访问限制,提高爬取效率。本文将介绍如何使用代理IP池维护虚拟用户,以在爬取过程中保持匿名性和稳定性。一、什么是代理IP池?代理IP池是一个包含多个代理IP的集合。这些代理IP通常是从公开或付费的代......
  • Python中怎么读取列表中某个值?
    Python中的列表是一种常见的数据结构,它可以存储同一类型或不同类型的数据。列表是Python中最常用的数据结构之一,可以简单地理解为一个由一系列元素组成的有序集合。那么Python中怎么读取列表中某个值?以下是具体内容介绍。1、使用in操作符Python中的in操作符可以用来检......
  • Python字符串操作:获取子序列的方法详解
    在Python中,处理字符串是一项常见的任务,其中一个常见的需求是从一个字符串中获取某一特定的子序列。这个子序列可以是一个连续的子字符串,也可以是不连续的一组字符。在这篇文章中,我们将探讨在Python中获取子序列的几种常见方法。1.切片操作Python中的切片操作是获取子序列的一种简便......
  • 使用Python找到和删除相似文件的方法
    在处理大量文件时,经常会遇到需要找到和删除相似文件的情况。本文将介绍如何使用Python编程语言来实现这一任务,以帮助提高文件管理的效率。导入必要的库我们首先需要导入以下两个Python标准库:importosimportfilecmpos库用于文件操作,包括获取文件路径、判断文件是否存在等功能。f......
  • Python爬虫技巧大全:提升效率、应对反爬与处理异常
    Python爬虫是一项强大的工具,但在实践中常常会遇到各种问题,如效率低下、反爬机制等。本文将介绍一些Python爬虫的技巧,帮助读者提升爬虫效率、应对反爬机制以及处理异常情况。一、提升爬虫效率1.使用多线程或异步编程:通过多线程或异步编程可以提高爬虫的并发性能,加快数据的获取速度。......
  • 如何用Python绘制小提琴图
    小提琴图(ViolinPlot)是一种常用的数据可视化方法,可以展示变量的分布情况,同时也能够比较不同类别之间的差异。本文将介绍如何使用Python绘制小提琴图,帮助读者更好地理解和运用这一数据可视化技巧。一、准备工作在开始绘制小提琴图之前,我们需要确保已经安装了必要的库,包括matplotlib......