【Python】Python办公自动化 | 一键给PDF文件加密,超方便
机器学习初学者
共 1865字,需浏览 4分钟
· 2022-01-10
今天给大家做一个给PDF文件加密的GUI界面(图形用户界面),方便现在的一些上班族白领们使用,尤其是需要给一些比较重要的PDF文件加密的时候,下面我们来看具体的步骤
给PDF文件加密
PyPDF2
,代码如下from PyPDF2 import PdfFileReader, PdfFileWriter
encrypted_file = PdfFileWriter()
original = PdfFileReader("PDF文件所在的路径")
number_of_pages = original.numPages
for i in range(number_of_pages):
page = original.getPage(i)
encrypted_file.addPage(page)
password = "密码"
encrypted_file.encrypt(password)
with open("新生成的PDF的路径", "wb")as file:
encrypted_file.write(file)
PDF
文件里面的内容,将其中的内容重新写入到一个实例化的对象当中,然后调用里面的encrypt()
方法来实现为PDF
文件加密,最后再导出到一个新的PDF
文件当中,大家可以单独运行这行代码来看看具体效果如何制作具体的GUI界面
我们用到的是PySimpleGUI
的模块,而针对这个界面布局的设置,如下图
代码如下
sg.theme('DarkTeal7')
layout = [
[sg.Text("请选择要加密的PDF文件,倘若文件较大,加密需要一点时间")],
[sg.Text('路径'), sg.InputText(), sg.FileBrowse(),],
[sg.Text('密码'), sg.InputText(password_char='*')],
[sg.Submit("提交"), sg.Cancel('退出')]
]
sg.theme()
代表的是GUI
界面的主题,大家可以根据自己的喜好设置界面的主题样式,layout
列表当中的内容代表的是整体的布局,
sg.Text()
设置文本内容和格式sg.FileBrowse()
代表的是文件选取的按钮sg.InputText()
代表的是文本内容的输入框,如果输入的是密码,则会相应的用"*"来遮盖住输入的内容
另外sg.window()
方法是用来创建窗口,包括窗口上面的名称
event
和values
是执行window.read()
方法所返回的值,其中event
是事件,如点击按钮、选择文件等;values
是包含输入的值,比如我们选择文件后的路径等。window = sg.Window('给指定的PDF文件添加加密', layout)
while True:
event, values = window.read()
if event in ('None', '退出'):
break
if event == "提交":
encry_pdf_files(values[0], values[1])
sg.popup('完成!!新生成的pdf文件在您的桌面')
break
window.close()
带包代码
我们通过调用Pyinstaller
模块来讲Python
代码打包,操作指令如下
pyinstaller -F -w 文件名.py
部分参数含义如下
-F
表示生成单个可执行文件-W
表示去掉控制台窗口,这在GUI界面时非常有用-i
表示可执行文件的图标
最后出来的效果如下图
PDF
文件(默认保存在本地电脑的桌面)也被添加上了密码,如下图
往期精彩回顾 本站qq群955171419,加入微信群请扫码:
评论
金融研究 | 使用Python测量关键审计事项的「信息含量」
Tips: 公众号推送后内容只能更改一次,且只能改20字符。如果内容出问题,或者想更新内容, 只能重复推送。为了更好的阅读体验,建议阅读本文博客版, 链接地址https://textdata.cn/blog/2023-01-13-information-content-of-critical-aud
大邓和他的Python
0
金融研究(更新) | 使用Python构建关键审计事项的「信息含量」
Tips: 公众号推送后内容只能更改一次,且只能改20字符。如果内容出问题,或者想更新内容, 只能重复推送。为了更好的阅读体验,建议阅读本文博客版, 链接地址https://textdata.cn/blog/2023-01-13-information-content-of-critical-aud
大邓和他的Python
0
谷歌员工爆料 Python 基础团队原地解散
转自 | 机器之心编辑 | 蛋酱什么?谷歌解雇了整个 Python 基础团队?「当与你直接共事的每个人,包括你的主管,都被裁员 —— 哦,是职位被削减,而你被要求安排他们的替代者入职,这些人被告知在不同的国家担任同样的职位,但他们并不为此感到高兴,这是很艰难的一天。」发布这一动态的 Tho
机器学习算法与Python实战
0
五一抢票难,Github上这几个Python项目,你可以试试
又到五一长假啦(虽然其实就放了1天),大家是打算家里蹲or出去玩,又或者是在公司加班呢...今天给大家介绍三个和12306相关的项目,看看你是否用得上。/01/ py12306py12306购票助手,顾名思义,12306买票的~需要在python 3.6以上版本运行程序。1. 安装依赖gi
Crossin的编程教室
0
Python加速运行技巧
Python 是一种脚本语言,相比 C/C++ 这样的编译语言,在效率和性能方面存在一些不足。但是,有很多时候,Python 的效率并没有想象中的那么夸张。本文对一些 Python 代码加速运行的技巧进行整理。 0. 代码优化原则 本文会介绍不少的 Python 代码加速运行的技巧。在深入代码优化细
机器学习算法与Python实战
0
为什么我们公司还在用 Python 开发项目?
作者:哇哒嘻哇https://www.zhihu.com/question/278798145/answer/3416549119最近几年里,经常看到某些曾重度使用 Python 的大公司迁移成其它语言技术栈,但是,那些小公司/小团队的情况如何呢?一直很想了解那些仍在坚持使用 Python,且支撑业
机器学习算法与Python实战
0
了解加密货币到加密货币的互换
1、什么是加密货币互换?加密货币到加密货币的互换是指以现行市场汇率将一种加密货币直接兑换为另一种加密货币。与需要法定货币存款和较长流程的传统交易所不同,加密货币到加密货币的互换可以无缝地促进交换。掉期在提高加密货币的流动性和效率方面发挥着重要作用。该功能使用户能够将他们的加密货币与钱包中的其他代币进
区块链头条
0
豆瓣9分线代教材免费了!斯坦福伯克利都在用,新版PDF直接下载
西风 发自 凹非寺 量子位 | 公众号 QbitAI豆瓣评分9.2、斯坦福都在用的线性代数教材,全新第四版免费来袭!没错,就是那本被认为“直击线性代数理论核心”的Linear Algebra Done Right。此书之前已发售三版,风靡30多个国家的200多所高校,这其中就包括斯坦福、UCB等顶尖
机器学习算法与Python实战
0