# pdf-editor **Repository Path**: mktime/pdf-editor ## Basic Information - **Project Name**: pdf-editor - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-01 - **Last Updated**: 2025-12-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PDF编辑器 - 跨平台桌面应用 一款功能丰富的PDF预览和编辑桌面应用,使用PySide6和PyMuPDF构建,支持macOS和Windows平台。 ![应用界面](screenshots/1.png) ## 功能特性 ### 📖 PDF查看与导航 - **PDF加载**:高质量渲染打开和显示PDF文件 - **页面导航**:通过首页、上一页、下一页、末页按钮浏览 - **页面信息**:显示当前页码和总页数 - **缩略图侧边栏**:可视化页面缩略图,快速导航 - **缩放控制**:鼠标滚轮缩放(Ctrl+滚轮)或工具栏按钮 - **平移支持**:点击拖拽在放大的文档中移动 ### 🖼️ 图片叠加与编辑 - **添加图片**:将PNG/JPG图片叠加到PDF页面上 - **拖拽移动**:移动叠加图片到任意位置 - **旋转功能**:左右旋转叠加图片(90度) - **缩放调整**:滑块控制调整图片大小(10% - 300%) - **选择功能**:点击图片选择以进行操作 - **实时预览**:立即在查看器中看到更改 - **直接交互**:支持鼠标滚轮缩放、右键旋转菜单、键盘方向键微调 ### 💾 导出与保存 - **另存为**:将编辑后的PDF(含叠加图片)导出为新文件 - **非破坏性**:原始PDF文件保持不变 - **高质量**:保持PDF质量的同时添加叠加内容 - **智能命名**:保存时自动添加"-signed"后缀,避免覆盖原文件 ### 🎯 智能路径记忆 - **目录记忆**:记住上次打开的PDF和图片目录 - **持久化存储**:重启应用后仍然保持路径记忆 - **配置文件**:使用JSON配置文件存储用户偏好 - **自动定位**:文件对话框自动定位到上次使用的目录 ## 系统要求 - Python 3.8+ - PySide6 6.9.2 - PyMuPDF 1.24.0 ## 安装步骤 1. **安装Python依赖:** ```bash pip install -r requirements.txt ``` 2. **运行应用:** ```bash python main.py ``` ## 使用指南 ### 打开PDF文件 1. 点击工具栏上的**"打开PDF"**按钮 2. 从计算机中选择PDF文件 3. PDF将加载并在侧边栏显示缩略图 4. 自动跳转到最后一页,默认缩放50% ### 页面导航 - 使用工具栏上的**首页**、**上一页**、**下一页**、**末页**按钮 - 点击侧边栏中的缩略图快速导航 - 支持鼠标滚轮滚动浏览页面 ### 添加图片 1. 导航到要添加图片的页面 2. 点击工具栏上的**"添加图片"**按钮 3. 选择图片文件(PNG、JPG、JPEG、BMP) 4. 图片将显示在页面中心 5. 自动记住上次使用的图片目录 ### 操作图片 1. **选择**:点击图片进行选择(显示边框) 2. **移动**:拖拽图片重新定位 3. **缩放**: - 鼠标滚轮:选中图片后使用滚轮缩放 - 右键菜单:选择"放大10%"或"缩小10%" - 工具栏:使用"图片控制"按钮打开控制面板 4. **旋转**: - 右键菜单:选择"向左旋转90°"或"向右旋转90°" - 键盘快捷键:选中图片后按左右方向键 - 工具栏:使用"左旋"或"右旋"按钮 5. **精确控制**:使用方向键进行像素级微调 ### 缩放与平移 - **放大/缩小**:使用工具栏按钮或Ctrl+滚轮 - **重置缩放**:点击"重置"按钮 - **平移**:放大后点击拖拽移动视图 ### 保存编辑后的PDF 1. 点击工具栏上的**"保存"**按钮 2. 选择保存位置和文件名(自动建议"-signed"后缀) 3. 新PDF文件将保存所有叠加图片 4. 自动定位到上次使用的PDF目录 ## 界面特色 ### 中文界面 - 全中文工具栏和菜单 - 中文状态栏提示信息 - 中文右键菜单和对话框 ### 工具栏分组 - **文件操作**:打开PDF、保存PDF、添加图片 - **页面导航**:首页、上一页、下一页、末页 - **页面信息缩放**:当前页码、放大、缩小、重置 - **图片操作**:添加图片、左旋、右旋、图片控制 ### 图标设计 - 汉字图标:使用中文汉字作为工具栏图标 - 直观易懂:图标与功能一一对应 - 统一风格:保持界面一致性 ## 快捷键 | 快捷键 | 功能 | |--------|------| | 鼠标滚轮 | 缩放页面(按住Ctrl) | | 方向键 | 旋转选中图片(左右)或微调位置(上下) | | 右键菜单 | 图片缩放和旋转操作 | ## 技术细节 ### 架构设计 - **前端**:PySide6跨平台GUI框架 - **PDF处理**:PyMuPDF(fitz)用于PDF渲染和操作 - **图形处理**:Qt图形框架管理叠加图片 ### 核心组件 - `PDFViewer`:自定义图形视图,支持PDF显示和交互 - `DraggablePixmapItem`:增强型图片项,支持拖拽、旋转、缩放 - `ThumbnailList`:侧边栏页面缩略图 - `ImageControlsDialog`:图片操作控制面板 ### 跨平台支持 - 支持**macOS**和**Windows**系统 - 使用Qt原生样式,适配不同平台外观 - 正确处理跨平台文件路径 ### 配置文件 - 位置:`~/.pdf_editor_config.json` - 功能:存储上次使用的PDF和图片目录 - 格式:JSON,支持UTF-8编码 ## 故障排除 ### 常见问题 1. **"无法加载PDF"** - 确保PDF文件未损坏 - 检查文件权限 - 尝试不同的PDF文件 2. **"无法加载图片"** - 验证图片文件格式是否支持(PNG、JPG、JPEG、BMP) - 检查图片文件是否损坏 - 确保有足够的内存处理大图片 3. **应用无法启动** - 验证Python 3.8+已安装 - 检查所有依赖是否安装:`pip install -r requirements.txt` - 尝试以管理员权限运行 4. **图片未出现在保存的PDF中** - 确保图片可见(未被隐藏) - 检查图片是否在页面边界内 - 验证保存操作是否成功完成 ### 性能建议 - 大型PDF文件可能需要时间加载 - 多个高分辨率图片可能拖慢应用 - 考虑降低图片分辨率以获得更好性能 ## 开发信息 ### 项目结构 ``` pdf-editor/ ├── main.py # 主应用文件 ├── requirements.txt # Python依赖 ├── README.md # 本说明文件 ├── screenshots/ # 截图目录 │ └── 1.png # 应用界面截图 └── .gitignore # Git忽略文件 ``` ### 扩展功能 模块化架构便于扩展: - 在`ImageControlsDialog`中添加新的图片处理工具 - 扩展`DraggablePixmapItem`支持更多叠加类型 - 使用PyMuPDF添加新的PDF处理功能 ## 更新日志 ### 最新版本 - ✅ 全中文界面和工具栏 - ✅ 智能路径记忆功能(重启后保持) - ✅ 默认50%缩放和最后一页定位 - ✅ 图片右键菜单支持缩放操作 - ✅ 保存时自动添加"-signed"后缀 - ✅ 键盘方向键精确控制 - ✅ 配置文件持久化存储 ## 支持 如有问题、建议或贡献,请参考项目仓库。 ## 许可证 本项目开源,采用MIT许可证。