代码功能概述
这段Python代码实现了一个图形化界面(GUI)应用程序,用于批量处理PDF文件中的二维码。具体功能包括:
- 界面交互:通过Tkinter创建一个窗口,用户可以在其中输入PDF文件所在文件夹路径、覆盖图片路径,选择是否在处理后删除原文件,并通过按钮启动、停止、清空输入及清空日志等操作。日志信息显示在滚动文本框中。
- 二维码处理:使用
pyzbar和cv2.wechat_qrcode_WeChatQRCode对PDF文件页面内容和注释中的二维码进行检测和定位。对于检测到的二维码,可以选择用指定图片覆盖或填充白色。处理后的PDF文件会保存在原文件夹下新创建的processed_file文件夹中,并保持原文件夹结构。 - 异常处理:如果PDF文件损坏或无法读取,会将其重命名为带有“_文件损坏”标记的文件名并跳过处理。若在处理过程中出现其他错误,会在日志中记录错误信息。
用户操作步骤
- 选择文件夹:点击“选择文件夹”按钮,选择包含PDF文件的文件夹路径。
- 选择覆盖图片:点击“请选择图片”按钮,选择用于覆盖二维码的图片(支持PNG、JPG、JPEG、BMP格式)。
- 选择是否删除原文件:勾选“处理后删除原文件”复选框,可在处理完成后删除原始PDF文件。
- 开始处理:点击“开始程序”按钮,程序开始批量处理选定文件夹内的PDF文件。
- 停止处理:点击“结束任务”按钮,可终止正在进行的处理任务。
- 清空输入:点击“清空输入”按钮,可清除之前输入的文件夹路径和图片路径。
- 清空日志:点击“清空日志”按钮,可清除日志显示区域的内容。
实例验证
假设文件夹及文件结构如下:
parent_folder/
│
├── pdf_folder/
│ ├── file1.pdf
│ ├── file2.pdf
│ └── sub_folder/
│ └── file3.pdf
└── replacement_image.jpg
- 运行程序:启动代码后,出现GUI界面。
- 选择文件夹:在GUI界面中点击“选择文件夹”,选中
parent_folder/pdf_folder。 - 选择覆盖图片:点击“请选择图片”,选中
parent_folder/replacement_image.jpg。 - 开始处理:点击“开始程序”。程序会遍历
pdf_folder及其子文件夹sub_folder中的所有PDF文件,检测并处理其中的二维码。处理后的文件会保存在pdf_folder/processed_file及其对应子文件夹结构中。例如,file3.pdf处理后会保存在pdf_folder/processed_file/sub_folder/file3.pdf。若勾选“处理后删除原文件”,处理完成后file1.pdf、file2.pdf和file3.pdf会被删除。
对子文件夹的处理
该代码对子文件夹有效,能够穿透子文件夹。通过os.walk函数遍历指定文件夹及其所有子文件夹中的文件,处理所有符合条件(.pdf后缀)的文件。在遍历过程中,会跳过已经创建的processed_file文件夹,避免重复处理。
python版本:3.86
是否带UI界面:UI版本
电脑系统版本:win10 64位 专业版系统(这是测试环境,其他环境也可以32位操作系统可能需要调整代码,让AI去转换即可)
脚本使用到的库:使用pycharm编辑器,如果没有安装相关库,会自动标红提示,鼠标放到标红的地方会弹出安装库按钮
重要提示:这是源代码,需要安装python使用,也可以自行修改部分代码实现想要的功能
查看源代码
- 随机文章
- 热门文章




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