Python 办公自动化,一键给PDF文件加密,超方便
Posted AI科技大本营
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 办公自动化,一键给PDF文件加密,超方便相关的知识,希望对你有一定的参考价值。
作者 | 欣一
来源 | Python爱好者集中营
今天给大家做一个给PDF文件加密的GUI界面(图形用户界面),方便现在的一些上班族白领们使用,尤其是需要给一些比较重要的PDF文件加密的时候,下面我们来看具体的步骤
给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
文件(默认保存在本地电脑的桌面)也被添加上了密码,如下图
往
期
回
顾
技术
资讯
资讯
资讯
分享
点收藏
点点赞
点在看
以上是关于Python 办公自动化,一键给PDF文件加密,超方便的主要内容,如果未能解决你的问题,请参考以下文章
5个实用的PDF自动化办公操作~1行Python代码搞定:解密加水印PPT/Word/TxT转PDF