Metadata-Version: 2.1
Name: pdf-deskew
Version: 0.1.0
Summary: A GUI tool for deskewing scanned PDF documents using PyQt6 and OpenCV
Keywords: pdf,deskew,image-processing,gui,pyqt6,opencv
Author-Email: driezy <luoyido@outlook.com>
License: MIT
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: X11 Applications :: Qt
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: Chinese (Simplified)
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Office/Business
Classifier: Topic :: Multimedia :: Graphics :: Viewers
Project-URL: Homepage, https://github.com/Tinnci/pdf_deskew
Project-URL: Repository, https://github.com/Tinnci/pdf_deskew.git
Project-URL: Issues, https://github.com/Tinnci/pdf_deskew/issues
Requires-Python: >=3.12
Requires-Dist: PyMuPDF>=1.24.13
Requires-Dist: opencv-python>=4.10.0.84
Requires-Dist: Pillow>=11.0.0
Requires-Dist: deskew>=1.5.1
Requires-Dist: tqdm>=4.66.6
Requires-Dist: numpy>=2.1.2
Requires-Dist: qt-material>=2.14
Requires-Dist: pyqt6>=6.7.1
Description-Content-Type: text/markdown

# PDF Deskew Tool

## 概述

PDF 校准工具是一个用于校正扫描 PDF 文档中倾斜页面的图形用户界面（GUI）应用程序。它利用 PyMuPDF、OpenCV 和其他强大的库来处理 PDF 的每一页，生成校正后的版本，使文本更加易读和视觉上更平衡。该工具支持多语言界面、主题切换、文件拖放以及详细的进度反馈，旨在提供简洁高效的用户体验。

## 功能特点

- **多语言支持**：支持中英文界面，用户可以根据需要切换语言。
- **文件拖放功能**：通过拖放方式选择输入 PDF 文件，提升操作便捷性。
- **批量处理**：支持同时处理多个 PDF 文件，提高工作效率。
- **详细的进度反馈**：显示进度条和百分比，实时了解处理进度。
- **主题切换**：提供多种界面主题，用户可根据喜好选择不同的外观。
- **自定义设置**：
  - **DPI 设置**：自定义渲染 DPI，以满足不同质量需求。
  - **背景颜色选择**：选择背景颜色或自定义颜色以优化校正效果。
- **日志记录**：记录处理过程中的重要信息和错误，便于调试和用户反馈。
- **直观美观的界面**：使用图标和工具提示，提升界面友好性和易用性。

## 安装

要使用此工具，您需要安装 [PDM](https://pdm.fming.dev/latest/) 来管理依赖项。

### 第一步：克隆仓库

```bash
git clone https://github.com/tinnci/pdf_deskew.git
cd pdf_deskew
```

### 第二步：安装依赖项

使用 PDM 从 `pyproject.toml` 中安装所需的依赖项：

```bash
pdm install
```

这将安装所有必要的依赖项，包括 `PyQt6`、`PyMuPDF`、`OpenCV`、`Pillow`、`deskew`、`qt-material` 等。

## 使用方法

使用 PDM 运行 GUI 应用程序：

```bash
pdm run python -m pdf_deskew_ui.main
```

### 界面说明

1. **文件选择**：
   - **输入 PDF 文件**：点击“浏览”按钮或将 PDF 文件拖放到拖放区域以选择要校正的 PDF 文件。
   - **输出 PDF 文件**：点击“浏览”按钮选择保存校正后 PDF 文件的路径。默认情况下，输出文件将命名为“输入文件名_deskewed.pdf”或“输入文件名_校准.pdf”（根据选择的语言）。

2. **设置选项**：
   - **使用推荐设置**：勾选此选项将使用默认 DPI=300 和白色背景颜色。取消勾选后，您可以自定义 DPI 和背景颜色。
   - **渲染 DPI**：设置渲染的 DPI 值，范围为 72 至 1200。仅在未勾选“使用推荐设置”时可用。
   - **背景颜色**：选择背景颜色或点击颜色选择按钮自定义颜色。仅在未勾选“使用推荐设置”时可用。

3. **语言和主题**：
   - **语言选择**：在下拉菜单中选择“English”或“中文”以切换界面语言。
   - **主题选择**：在下拉菜单中选择“Light”、“Dark”或“Blue”以更改应用程序的主题。

4. **操作按钮**：
   - **帮助**：点击“帮助”按钮查看使用说明和帮助信息。
   - **退出**：点击“退出”按钮关闭应用程序。
   - **开始校准**：点击“开始校准”按钮启动 PDF 校正过程。

5. **进度反馈**：
   - **进度条**：显示当前的处理进度。
   - **百分比标签**：显示进度的具体百分比。

### 示例操作流程

1. **启动应用程序**：
   ```bash
   pdm run python -m pdf_deskew_ui.main
   ```

2. **选择输入 PDF 文件**：
   - 点击“浏览”按钮选择要校正的 PDF 文件，或将文件拖放到拖放区域。

3. **选择输出 PDF 文件路径**：
   - 点击“浏览”按钮选择保存校正后 PDF 的路径。默认名称将自动生成。

4. **配置设置**：
   - 勾选“使用推荐设置”以使用默认 DPI 和背景颜色，或取消勾选以自定义这些设置。

5. **开始校准**：
   - 点击“开始校准”按钮，程序将显示处理进度。
   - 处理完成后，系统将提示校正后的 PDF 文件已保存的位置。

## 系统要求

- **操作系统**：Windows、macOS 或 Linux
- **Python 版本**：Python 3.12 或更高版本
- **依赖项**：
  - PyQt6
  - PyMuPDF
  - OpenCV
  - NumPy
  - Pillow
  - deskew
  - qt-material

## 安装依赖项

确保您的项目环境中已安装以下依赖项。您可以使用以下 `requirements.txt` 文件并通过 `pip` 安装：

```plaintext
PyQt6
PyMuPDF
opencv-python
numpy
Pillow
deskew
qt-material
```

安装依赖项的命令：

```bash
pip install -r requirements.txt
```

## 注意事项

- **文件路径中的特殊字符**：如果输入或输出路径中包含空格或特殊字符，请确保使用引号或转义序列，以避免路径错误。
- **临时文件**：应用程序会创建一个临时文件夹来存储中间图像，处理完成后会自动删除该文件夹。
- **日志记录**：处理过程中的日志将记录在项目根目录下的 `pdf_deskew.log` 文件中，便于调试和问题排查。
- **主题切换**：更改主题后，应用程序界面将立即更新为所选主题，无需重新启动。

## 开发

如果您希望为此项目做出贡献，可以 fork 此仓库并提交您的更改的 pull request。欢迎任何改进！

### 开发环境设置

1. **克隆仓库**：
   ```bash
   git clone https://github.com/tinnci/pdf_deskew.git
   cd pdf_deskew
   ```

2. **安装依赖项**：
   ```bash
   pdm install
   ```

3. **运行测试**：
   - 确保所有功能正常工作，并进行必要的单元测试。

4. **提交更改**：
   ```bash
   git add .
   git commit -m "Your commit message"
   git push origin your-branch
   ```

## 许可证

该项目使用 MIT 许可证。您可以随意使用和修改它。

## 联系方式

如果您有任何问题或遇到问题，可以在 GitHub 上提交 issue，或者通过 [luoyido@outlook.com](mailto:luoyido@outlook.com) 联系我。

## 日志记录

应用程序运行时会生成 `pdf_deskew.log` 日志文件，记录关键事件和错误信息，帮助您了解处理过程或进行故障排除。

---

感谢您使用 PDF 校准工具！如果您喜欢本项目，请在 GitHub 上为我们点赞，并分享给更多需要的朋友。