代码功能概述
这段代码实现了一个使用PyQt5创建的图形化界面(GUI)应用程序,用于批量为PDF文件添加查看密码和编辑密码,并限制PDF文件的编辑权限为仅允许复制内容。该程序具备以下功能:
- 文件夹选择:允许用户通过浏览按钮或直接拖拽文件夹路径到输入框,选择包含PDF文件的输入文件夹以及加密后PDF文件输出的文件夹。
- 密码设置:支持两种密码设置方式,一是使用固定密码,二是使用随机生成的密码(6到8位字母和数字组合),分别用于设置查看密码和编辑密码。
- 加密处理:程序会遍历输入文件夹及其所有子文件夹中的PDF文件,为每个PDF文件添加相应的查看密码和编辑密码,并限制编辑权限为仅允许复制内容,然后将加密后的文件保存到对应的输出文件夹结构中。
- 进度与状态显示:在加密过程中,通过进度条显示加密进度,同时在界面上显示状态信息,如加密过程中的错误提示、完成提示等。
- 密码记录:加密完成后,将每个PDF文件对应的查看密码和编辑密码记录到
password_log.txt文件中,并保存在输出文件夹中。
用户操作步骤
- 启动程序:运行代码后,会弹出一个图形化界面窗口。
- 选择输入文件夹:点击“输入pdf所在文件夹路径(支持子文件加穿透)”旁边的“浏览”按钮,在弹出的文件选择对话框中选择包含需要加密PDF文件的文件夹;或者直接将文件夹路径拖拽到输入框中。
- 选择输出文件夹:点击“添加密码后输出到的文件夹路径”旁边的“浏览”按钮,选择加密后的PDF文件要保存到的文件夹;同样也可直接拖拽路径到输入框。
- 设置密码:如果希望使用固定密码,取消“使用随机查看密码(字母+数字,最长8位)”和“使用随机编辑密码(字母+数字,最长8位)”的勾选,然后在“固定查看密码”和“固定编辑密码”输入框中分别输入密码。若希望使用随机密码,则勾选相应的复选框。
- 开始加密:完成上述设置后,“开始加密”按钮会变为可用状态,点击该按钮开始对PDF文件进行加密操作。加密过程中,可从进度条和状态标签查看加密进度和状态信息。加密完成后,会在输出文件夹中生成
password_log.txt文件,记录每个PDF文件的密码信息。
实例验证
假设我们有以下文件夹及文件结构:
input_folder/
│
├── sub_folder1/
│ ├── file1.pdf
│ └── file2.pdf
│
├── sub_folder2/
│ └── file3.pdf
│
└── file4.pdf
- 运行程序:启动该Python程序,出现图形化界面。
- 设置输入文件夹:点击“输入pdf所在文件夹路径(支持子文件加穿透)”的“浏览”按钮,选择
input_folder文件夹。 - 设置输出文件夹:点击“添加密码后输出到的文件夹路径”的“浏览”按钮,选择一个空文件夹
output_folder作为输出目录。 - 设置密码:假设我们勾选“使用随机查看密码(字母+数字,最长8位)”和“使用随机编辑密码(字母+数字,最长8位)”。
- 开始加密:点击“开始加密”按钮。程序开始遍历
input_folder及其子文件夹中的所有PDF文件,为每个文件添加随机生成的查看密码和编辑密码,并限制编辑权限为仅允许复制内容,然后将加密后的文件保存到output_folder中对应的文件夹结构下,即:
output_folder/
│
├── sub_folder1/
│ ├── file1.pdf
│ └── file2.pdf
│
├── sub_folder2/
│ └── file3.pdf
│
└── file4.pdf
同时,在output_folder中生成password_log.txt文件,记录每个PDF文件对应的查看密码和编辑密码。
对子文件夹的处理
代码使用os.walk函数遍历输入文件夹及其所有子文件夹,所以该程序对输入文件夹下的子文件夹同样有效,能够穿透子文件夹查找PDF文件并进行加密处理,且会在输出文件夹中创建与输入文件夹相同的子文件夹结构来保存加密后的文件。
python版本:3.86
是否带UI界面:UI版本
电脑系统版本:win10 64位 专业版系统(这是测试环境,其他环境也可以32位操作系统可能需要调整代码,让AI去转换即可)
脚本使用到的库:使用pycharm编辑器,如果没有安装相关库,会自动标红提示,鼠标放到标红的地方会弹出安装库按钮
重要提示:这是源代码,需要安装python使用,也可以自行修改部分代码实现想要的功能
查看源代码
- 随机文章
- 热门文章
- 716-批量移动指定文件夹带有关键词文件到目标文件夹-支持多个关键词
- 751-以txt中内容批量搜索并删除删除指定文件夹下文件
- 753-批量从各文件夹内随机挑选指定数量文件移动到指定文件夹
- 756-对指定文件夹下文件及文件夹建立目录树-支持导出多种文件格式
- 758-一键按照时间-按月份-按日期-文件类型-修改时间整理文件
- 776-批量删除指定文件夹下所有文件名中指定的关键词
- 批量复制指定文件夹下文件夹结构到目标文件夹内
- 10081-2-批量解压自解压文件-批量解压到自解压文件所在文件夹内-不支持密码-除自解压文件外不能有其他exe文件
- 791-批量为文件夹名添加前缀或后缀
- 10082-2-批量解压压缩包-【支持子文件夹穿透-带密码的压缩包】【不支持多层嵌套压缩包】




还没有评论,来说两句吧...