Python办公自动化 | 一键给PDF文件加密,超方便

今天给大家做一个给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文件(默认保存在本地电脑的桌面)也被添加上了密码,如下图

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值