A GUI tool for deskewing scanned PDF documents using PyQt6 and OpenCV
Project description
PDF Deskew Tool
概述
PDF 校准工具是一个用于校正扫描 PDF 文档中倾斜页面的图形用户界面(GUI)应用程序。它利用 PyMuPDF、OpenCV 和其他强大的库来处理 PDF 的每一页,生成校正后的版本,使文本更加易读和视觉上更平衡。该工具支持多语言界面、主题切换、文件拖放以及详细的进度反馈,旨在提供简洁高效的用户体验。
功能特点
- 多语言支持:支持中英文界面,用户可以根据需要切换语言。
- 文件拖放功能:通过拖放方式选择输入 PDF 文件,提升操作便捷性。
- 批量处理:支持同时处理多个 PDF 文件,提高工作效率。
- 详细的进度反馈:显示进度条和百分比,实时了解处理进度。
- 主题切换:提供多种界面主题,用户可根据喜好选择不同的外观。
- 自定义设置:
- DPI 设置:自定义渲染 DPI,以满足不同质量需求。
- 背景颜色选择:选择背景颜色或自定义颜色以优化校正效果。
- 日志记录:记录处理过程中的重要信息和错误,便于调试和用户反馈。
- 直观美观的界面:使用图标和工具提示,提升界面友好性和易用性。
安装
要使用此工具,您需要安装 PDM 来管理依赖项。
第一步:克隆仓库
git clone https://github.com/tinnci/pdf_deskew.git
cd pdf_deskew
第二步:安装依赖项
使用 PDM 从 pyproject.toml 中安装所需的依赖项:
pdm install
这将安装所有必要的依赖项,包括 PyQt6、PyMuPDF、OpenCV、Pillow、deskew、qt-material 等。
使用方法
使用 PDM 运行 GUI 应用程序:
pdm run python -m pdf_deskew_ui.main
界面说明
-
文件选择:
- 输入 PDF 文件:点击“浏览”按钮或将 PDF 文件拖放到拖放区域以选择要校正的 PDF 文件。
- 输出 PDF 文件:点击“浏览”按钮选择保存校正后 PDF 文件的路径。默认情况下,输出文件将命名为“输入文件名_deskewed.pdf”或“输入文件名_校准.pdf”(根据选择的语言)。
-
设置选项:
- 使用推荐设置:勾选此选项将使用默认 DPI=300 和白色背景颜色。取消勾选后,您可以自定义 DPI 和背景颜色。
- 渲染 DPI:设置渲染的 DPI 值,范围为 72 至 1200。仅在未勾选“使用推荐设置”时可用。
- 背景颜色:选择背景颜色或点击颜色选择按钮自定义颜色。仅在未勾选“使用推荐设置”时可用。
-
语言和主题:
- 语言选择:在下拉菜单中选择“English”或“中文”以切换界面语言。
- 主题选择:在下拉菜单中选择“Light”、“Dark”或“Blue”以更改应用程序的主题。
-
操作按钮:
- 帮助:点击“帮助”按钮查看使用说明和帮助信息。
- 退出:点击“退出”按钮关闭应用程序。
- 开始校准:点击“开始校准”按钮启动 PDF 校正过程。
-
进度反馈:
- 进度条:显示当前的处理进度。
- 百分比标签:显示进度的具体百分比。
示例操作流程
-
启动应用程序:
pdm run python -m pdf_deskew_ui.main
-
选择输入 PDF 文件:
- 点击“浏览”按钮选择要校正的 PDF 文件,或将文件拖放到拖放区域。
-
选择输出 PDF 文件路径:
- 点击“浏览”按钮选择保存校正后 PDF 的路径。默认名称将自动生成。
-
配置设置:
- 勾选“使用推荐设置”以使用默认 DPI 和背景颜色,或取消勾选以自定义这些设置。
-
开始校准:
- 点击“开始校准”按钮,程序将显示处理进度。
- 处理完成后,系统将提示校正后的 PDF 文件已保存的位置。
系统要求
- 操作系统:Windows、macOS 或 Linux
- Python 版本:Python 3.12 或更高版本
- 依赖项:
- PyQt6
- PyMuPDF
- OpenCV
- NumPy
- Pillow
- deskew
- qt-material
安装依赖项
确保您的项目环境中已安装以下依赖项。您可以使用以下 requirements.txt 文件并通过 pip 安装:
PyQt6
PyMuPDF
opencv-python
numpy
Pillow
deskew
qt-material
安装依赖项的命令:
pip install -r requirements.txt
注意事项
- 文件路径中的特殊字符:如果输入或输出路径中包含空格或特殊字符,请确保使用引号或转义序列,以避免路径错误。
- 临时文件:应用程序会创建一个临时文件夹来存储中间图像,处理完成后会自动删除该文件夹。
- 日志记录:处理过程中的日志将记录在项目根目录下的
pdf_deskew.log文件中,便于调试和问题排查。 - 主题切换:更改主题后,应用程序界面将立即更新为所选主题,无需重新启动。
开发
如果您希望为此项目做出贡献,可以 fork 此仓库并提交您的更改的 pull request。欢迎任何改进!
开发环境设置
-
克隆仓库:
git clone https://github.com/tinnci/pdf_deskew.git cd pdf_deskew
-
安装依赖项:
pdm install -
运行测试:
- 确保所有功能正常工作,并进行必要的单元测试。
-
提交更改:
git add . git commit -m "Your commit message" git push origin your-branch
许可证
该项目使用 MIT 许可证。您可以随意使用和修改它。
联系方式
如果您有任何问题或遇到问题,可以在 GitHub 上提交 issue,或者通过 luoyido@outlook.com 联系我。
日志记录
应用程序运行时会生成 pdf_deskew.log 日志文件,记录关键事件和错误信息,帮助您了解处理过程或进行故障排除。
感谢您使用 PDF 校准工具!如果您喜欢本项目,请在 GitHub 上为我们点赞,并分享给更多需要的朋友。
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pdf_deskew-0.1.0.tar.gz.
File metadata
- Download URL: pdf_deskew-0.1.0.tar.gz
- Upload date:
- Size: 24.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6d12d97d98020d3349005ff619a01326d2ec5712351dbe65d9b4e08b8216d2b7
|
|
| MD5 |
b0381b7b6fbb678bf832bd3b693087a4
|
|
| BLAKE2b-256 |
b1a4441280447e421216ff71e343148aef78fb638716ecae811cfe3732259e9f
|
File details
Details for the file pdf_deskew-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pdf_deskew-0.1.0-py3-none-any.whl
- Upload date:
- Size: 23.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c9c7fb3812bcfad8842a50ab4582a95e057f9aa2d06bd79a331cc38cff5ad73f
|
|
| MD5 |
bdfd53219451aad1e57b00e8f605cd79
|
|
| BLAKE2b-256 |
e5928bd2eda8dfc7f63b42a5387130115de5f476533e9674d15b8d65e2fd8826
|