Pycharm写一个能“针对文档的安全工具,保护文档的工具”的代码,需要用到GUI界面
时间: 2024-02-27 16:55:18 浏览: 16
好的,可以使用Python的Tkinter库来实现GUI界面。以下是一个简单的示例代码,可以让用户选择要保护的文档并设置密码来加密文档。
```python
import tkinter as tk
from tkinter import filedialog
from PyPDF2 import PdfFileWriter, PdfFileReader
class DocumentSecurityTool:
def __init__(self, master):
self.master = master
master.title("文档安全工具")
self.label = tk.Label(master, text="请选择要保护的文档:")
self.label.pack()
self.select_button = tk.Button(master, text="选择文件", command=self.select_file)
self.select_button.pack()
self.password_label = tk.Label(master, text="请设置密码:")
self.password_label.pack()
self.password_entry = tk.Entry(master, show="*")
self.password_entry.pack()
self.encrypt_button = tk.Button(master, text="加密文件", command=self.encrypt_file, state=tk.DISABLED)
self.encrypt_button.pack()
def select_file(self):
self.filepath = filedialog.askopenfilename(initialdir="/", title="选择文件", filetypes=(("PDF files", "*.pdf"), ("all files", "*.*")))
if self.filepath:
self.encrypt_button.config(state=tk.NORMAL)
def encrypt_file(self):
password = self.password_entry.get()
if password:
output_path = self.filepath[:-4] + "_encrypted.pdf"
input_pdf = PdfFileReader(open(self.filepath, "rb"))
output_pdf = PdfFileWriter()
for i in range(input_pdf.getNumPages()):
output_pdf.addPage(input_pdf.getPage(i))
output_pdf.encrypt(password)
with open(output_path, "wb") as outputStream:
output_pdf.write(outputStream)
tk.messagebox.showinfo("加密成功", "已成功加密文件!")
self.master.destroy()
else:
tk.messagebox.showerror("错误", "密码不能为空!")
root = tk.Tk()
my_gui = DocumentSecurityTool(root)
root.mainloop()
```
这个程序使用了PyPDF2库来加密PDF文档,你可以根据需要更换其他的文档处理库。同时,程序还使用了filedialog和messagebox模块来让用户选择文件并输出提示信息。