社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

机器学习初学者 • 3 年前 • 262 次点击  

今天给大家做一个给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()方法是用来创建窗口,包括窗口上面的名称

eventvalues是执行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社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/125544
 
262 次点击