代码功能概述
这段Python代码实现了一个图形化界面(GUI)应用程序,用于批量处理PDF文件,具体功能为删除PDF文件中的二维码和注释图章,并将处理后的PDF文件保存在指定的文件夹内。
用户操作步骤
- 打开程序:运行脚本后,弹出名为“批量删除pdf中二维码和注释图章工具”的窗口。
- 选择文件夹:点击“选择文件夹”按钮,选择包含PDF文件的文件夹路径,路径会显示在输入框中。
- 开始处理:点击“开始程序”按钮,程序开始处理所选文件夹及其子文件夹内的所有PDF文件。
- 终止任务(可选):若想中途停止任务,点击“结束任务”按钮。
- 清空输入框和日志(可选):可点击“清空输入框”和“清空日志”按钮分别清空输入框内容和日志显示框内容。
对子文件夹的处理
该程序能穿透子文件夹。在代码中,使用os.walk函数遍历指定的input_folder及其所有子文件夹,处理其中所有的PDF文件,但是会跳过名称中包含“已处理_pdf”的文件夹。
实例验证
假设我们有如下文件夹结构:
parent_folder
│
├── sub_folder1
│ ├── file1.pdf
│ └── file2.pdf
├── sub_folder2
│ └── file3.pdf
└── main_file.pdf
- 用户操作:
- 运行程序后,在图形界面中点击“选择文件夹”,选择
parent_folder。 - 点击“开始程序”。
- 运行程序后,在图形界面中点击“选择文件夹”,选择
- 程序执行:
- 程序会遍历
parent_folder及其子文件夹sub_folder1和sub_folder2。 - 对于每个PDF文件,如
main_file.pdf、file1.pdf、file2.pdf和file3.pdf,程序会执行以下操作:- 首先,覆盖白色图章在注释上,并删除注释。
- 然后,检测并删除包含二维码的注释。如果页面上没有包含二维码的注释,则对页面进行放大处理后检测二维码,并在检测到的二维码区域绘制白色矩形覆盖。
- 处理后的文件会保存在parent_folder/已处理_pdf文件夹内,且保持与原文件夹相同的子文件夹结构,即:
- 程序会遍历
parent_folder
│
├── 已处理_pdf
│ ├── sub_folder1
│ │ ├── file1.pdf
│ │ └── file2.pdf
│ ├── sub_folder2
│ │ └── file3.pdf
│ └── main_file.pdf
├── sub_folder1
│ ├── file1.pdf
│ └── file2.pdf
├── sub_folder2
│ └── file3.pdf
└── main_file.pdf
代码实现细节
- 图像处理与PDF操作:
- 使用
cv2库进行图像处理,如读取图像、颜色空间转换等。 - 使用
fitz(PyMuPDF)库进行PDF文件的读取、注释处理、页面绘制等操作。
- 使用
- 多线程:
- 使用
threading库创建线程来处理PDF文件,以避免阻塞图形界面。 - 通过
threading.Event来实现停止任务的功能。
- 使用
- 图形界面:
- 使用
tkinter库创建图形界面,包括输入框、按钮、文本框等组件。 - 通过绑定事件处理函数来响应用户的操作。
- 使用
python版本:3.86
是否带UI界面:UI版本
电脑系统版本:win10 64位 专业版系统(这是测试环境,其他环境也可以32位操作系统可能需要调整代码,让AI去转换即可)
脚本使用到的库:使用pycharm编辑器,如果没有安装相关库,会自动标红提示,鼠标放到标红的地方会弹出安装库按钮
重要提示:这是源代码,需要安装python使用,也可以自行修改部分代码实现想要的功能
查看源代码
- 随机文章
- 热门文章
- 725-批量将指定文件夹下所有内容复制到多个文件夹下【包含子文件夹下】
- 757-读取txt每行文件名移动指定文件到指定文件夹
- 766-移动带有关键字文件到指定文件夹
- 10080-1-监测指定文件夹-支持子孙文件夹-对所有压缩包创建同名文件夹移入并解压-只支持zip-rar-7z压缩包的解压
- 201-批量删除excell文件xlsx格式文件中的空行
- 150-根据音视频时长移动或复制文件到相应文件夹归类
- 10046-1-批量添加文字水印自动居中自定义水印高度每隔几秒钟显示一次水印
- 100130-批量自动去除视频黑边
- 100132-批量将视频格式转换为mp4文件支持子孙文件夹操作
- 100134-3-批量将指定文件夹下所有视频分别转为9:16比例的mp4视频




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