【Python】Python办公自动化 | 一键给PDF文件加密,超方便
今天給大家做一個給PDF文件加密的GUI界面(圖形用戶界面),方便現在的一些上班族白領們使用,尤其是需要給一些比較重要的PDF文件加密的時候,下面我們來看具體的步驟
給PDF文件加密
首先我們需要清楚的是如何給PDF文件加密,這里需要用到的是PyPDF2,代碼如下
from?PyPDF2?import?PdfFileReader,?PdfFileWriterencrypted_file?=?PdfFileWriter() original?=?PdfFileReader("PDF文件所在的路徑") number_of_pages?=?original.numPagesfor?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',?'退出'):breakif?event?==?"提交":encry_pdf_files(values[0],?values[1])sg.popup('完成!!新生成的pdf文件在您的桌面')breakwindow.close()帶包代碼
我們通過調用Pyinstaller模塊來講Python代碼打包,操作指令如下
pyinstaller?-F?-w?文件名.py部分參數含義如下
-F 表示生成單個可執行文件
-W 表示去掉控制臺窗口,這在GUI界面時非常有用
-i 表示可執行文件的圖標
最后出來的效果如下圖
PDF文件(默認保存在本地電腦的桌面)也被添加上了密碼,如下圖
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載黃海廣老師《機器學習課程》視頻課黃海廣老師《機器學習課程》711頁完整版課件本站qq群955171419,加入微信群請掃碼:
總結
以上是生活随笔為你收集整理的【Python】Python办公自动化 | 一键给PDF文件加密,超方便的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何画出漂亮的深度学习模型图
- 下一篇: 迅雷加载项会导致IE9浏览器崩溃