首页 > 编程语言 >Python对PDF文件加密和添加水印大揭秘!

Python对PDF文件加密和添加水印大揭秘!

时间:2024-03-28 19:33:27浏览次数:25  
标签:文件 Python writer 水印 PyPDF2 pdf PDF page

Python这个编程语言,不仅因为它语法简洁易懂,还因为它能帮我解决各种实际问题。最近我就用Python给PDF文件加了密,还添了个酷炫的水印,感觉自己瞬间变成了文件安全的小能手!

首先,得说说这个PDF加密。你知道吗,现在网上各种资料满天飞,保护自己的文档不被他人随意查看变得尤为重要。用Python加密PDF,就像给文件上了把锁,只有掌握密码的人才能打开。这种感觉,就像是自己成了文件的守护者,守护着里面的秘密。快来看看我是如何做的​:

# 导入PyPDF2模块import PyPDF2# 创建读取pdf文件对象reader = PyPDF2.PdfFileReader(r"./01_iot-modbus.pdf")# 创建写入pdf文件对象writer = PyPDF2.PdfFileWriter()for page_num in range(reader.numPages):# 将原文件的每一页追加到writer对象中去    writer.addPage(reader.getPage(page_num))# 给writer对象设置密码writer.encrypt("123456")# 创建文件,将加密后的内容写入到新文件中with open(r"./03_加密.pdf", "wb") as file:    writer.write(file)

然后,再来说说给PDF添加水印。水印这东西,看似微不足道,但却能起到意想不到的效果。就像是在自己的东西上打上了一个专属标记,告诉别人:“这是我的,别动!”在Python里,给PDF加水印就像是在画布上随意涂鸦,想怎么加就怎么加,想加什么就加什么。这样一来,即使我的文档被他人分享或复制,也能一眼认出那是我的东西。下面让我们一起来动手试试:

# 导入PyPDF2模块import PyPDF2# 读取原文件reader = PyPDF2.PdfFileReader(r"./01_iot-modbus.pdf")# 读取水印文件water = PyPDF2.PdfFileReader(r"./04_watermark.pdf")# 创建写入pdf文件的对象writer = PyPDF2.PdfFileWriter()# 获取水印页water_page = water.getPage(0)# 通过循环给原文件每页添加水印for page_num in range(reader.numPages):    # 获取当前页对象    current_page = reader.getPage(page_num)    # 将原文件的每一页与水印页进行合并    current_page.mergePage(water_page)    writer.addPage(current_page)# 将添加完水印页文件写入到新文件中with open(r"./04_添加水印.pdf", "wb") as file:    writer.write(file)

Python不仅让我感受到了编程的乐趣,还帮我解决了许多实际问题。如果你也像我一样,对文件安全有所担忧,或者想让自己的文档更具个性化,不妨试试用Python来加密和添加水印吧!相信我,你一定会爱上这种掌控文件安全的感觉的。

标签:文件,Python,writer,水印,PyPDF2,pdf,PDF,page
From: https://blog.csdn.net/luorongxi123/article/details/136903576

相关文章

  • P1037 [NOIP2002 普及组] 产生数 python 题解
    原题链接:产生数原理解释本题就是基本的dfs,对每一个数遍历深搜,得到他能变化的所有情况,最后相乘就是结果,网上都是c的解法,需要用到高精度,但是python可以处理大数,不需要。vis[]判断该数是否变换过,防止重复以n=123,k=2,变换列表x=[1,3],y=[3,4],即1->3,3->4:先遍历1:遍历......
  • Python数据结构实验 树和二叉树实验(二)
    一、实验目的1.掌握二叉树的概念和二叉树的性质;2.掌握二叉树的存储结构,包括二叉树顺序存储结构和链式存储结构;3.掌握二叉树的基本运算算法和二叉树的先序、中序和后序遍历的递归算法的实现。二、实验环境1.Windows操作系统的计算机2.Python3.7环境平台和PyCharm编辑器三、......
  • 【课程设计/实训作品】python小区物业管理系统项目源码
    一直想做一款小区物业管理系统,看了很多优秀的开源项目但是发现没有合适的。于是利用空闲休息时间开始自己写了一套管理系统。学习过程中遇到问题可以评论。在线体验http://wuye.gitapp.cn/(账号:admin123密码:admin123)源码地址https://github.com/geeeeeeeek/python_wuye......
  • 从字节码的角度看 python swap
    从字节码的角度看pythonswap背景从一道算法题开始:反转链表classListNode:def__init__(self,v)->None:self.val=vself.next=Nonedefadd_next(self,v):new_node=ListNode(v)self.next=new_noderetur......
  • 16,2024年Python大厂面试分享
    6.3.路由6.3.1.配置分布式路由在tedu_note/urls.py中,将所有user/***相关路由转交给user处理fromdjango.contribimportadminfromdjango.urlsimportpath,includeurlpatterns=[path(‘admin/’,admin.site.urls),path(‘user/’,include(‘user.urls’))......
  • pdf转换器免费的有哪几款?
    免费的pdf工具有哪些?PDF在我们办公频繁使用到,方便阅读,但是很多时候都需要进行文件格式的转换,一款优质、高效的PDF转换工具,能使我们高效地工作。今天就为大家系统地介绍5款免费、好用的PDF转换工具,大家有需要的话可以来这里了解下。1、ilovepdf.com.cnilovepdf在线转换器官方版......
  • MATLAB和Python交互的问题
    MATLAB和Python交互的一些坑:pythonsetup.pyinstall一定要在MATLAB安装文件夹setup.py的位置运行,使用绝对路径运行setup.py是不允许的,但是python可以用绝对路径参考D:\MATLAB\R2019b\extern\engines\python>D:\Python3.7\python.exe.\setup.pyinstall如果后续更换了MATLA......
  • 在Python中如何使用协程进行并发操作
    在Python中使用协程进行并发操作是一种高效的方式来处理I/O密集型任务或者在单个Python程序内部执行多个操作。本文将详细介绍如何在Python中使用协程进行并发操作,包括协程的基本概念、如何创建和运行协程、如何使用任务来管理多个协程,以及如何利用协程进行并发网络请求等。最......
  • 想学Python必看!!让你的Python学习之路事半功倍!!(超详细)
    前言在学习编程的路上,许多小伙伴脑子一热毫无规划就开始自学,结果不出一周,就从入门到入土,小编为大家整理了一份入门须知,看完事半功倍!本篇通过以下四块展开,提供大量资源对应。选一个好版本有没有看过《在下坂本,有何贵干?》那个版本可以装B,Python的版本则是你的工作环境。......
  • Python 字符串转为字典的两种常用方式(接口交互时)
    结论:在做接口时,请求、响应信息,必须要用json格式 原因:常规的字符串转为字典有两种方式,但两种方式都存在一定的问题:1、ast.literal_eval()(包含eval等类型方法)问题1:安全性,(literal_eval安全性好一些,eval不安全)问题2:需要将字符串中的 true false  null  =》 True......