Skip to content

一个用 Python 和 PySide6 编写的轻量级 PDF 页面编辑器,支持多 PDF 文件的页面级操作、合并、排序、旋转、删除等常用功能。适合日常 PDF 页面管理与编辑。

Notifications You must be signed in to change notification settings

GreenHandHand/pdfPageEditor

Repository files navigation

Simple PDF Editor

一个用 Python 和 PySide6 编写的轻量级 PDF 编辑器,支持多 PDF 文件的页面级操作、合并、排序、旋转、删除等常用功能。适合日常 PDF 页面管理与编辑。


功能特性

  • 支持工作区,管理多个 PDF 文件
  • PDF 文件浏览与页面缩略图预览
  • 页面多选、Ctrl/Shift 多选、连续多选
  • 页面拖拽排序(支持多选拖拽)
  • 页面旋转(左旋/右旋,批量支持)
  • 页面删除(批量支持)
  • 合并选中页面为新 PDF
  • 合并全部页面为新 PDF
  • 删除工作区中的 PDF 文件
  • 撤销与重做(Ctrl+Z / Ctrl+R)
  • 右键菜单与工具栏操作

环境与依赖

  • Python 3.8+
  • uv 包管理器
  • PySide6
  • PyMuPDF

项目结构

pdfEditor/
├── main.py                # 主程序入口与主窗口
├── pdf_operations.py      # PDF 合并等操作
├── viewer.py              # 页面缩略图预览与交互
├── workspace.py           # 工作区与数据结构
├── utils.py               # 工具函数
└── README.md

主要数据结构

class Workspace:
    def __init__(self):
        self.pdf_files = []  # 当前工作区的所有 PDF 文件

class PDFFile:
    def __init__(self, file_path):
        self.file_path = file_path
        self.pages = []  # PDFPage 对象列表

class PDFPage:
    def __init__(self, page_number, thumbnail, parent_pdf_path):
        self.page_number = page_number
        self.thumbnail = thumbnail
        self.parent_pdf_path = parent_pdf_path
        self.rotation = 0

    def update_thumbnail(self):
        # 根据 rotation 重新生成缩略图
        ...

用户交互说明

工作区与文件管理

  • 新建工作区:菜单栏“文件”->“新建工作区”,清空当前所有 PDF。
  • 添加 PDF:菜单栏“文件”->“添加PDF”,可批量添加 PDF 文件到工作区。
  • 删除 PDF:菜单栏“文件”->“删除PDF”,弹窗选择要删除的 PDF 文件。

页面浏览与操作

  • 页面缩略图:所有 PDF 页面以缩略图形式平铺显示,支持滚动浏览。
  • 页面选中
    • 单击页面:选中该页面(高亮显示)。
    • Ctrl+单击:多选页面(不会取消已选页面)。
    • Shift+单击:连续多选。
    • 再次单击已选页面或切换到单选模式时可取消选中。
  • 页面拖拽排序
    • 支持单选或多选页面拖拽,拖拽到目标页面后面(第一页支持左右插入)。
    • 拖拽时高亮目标页面,松开鼠标后完成排序。
  • 页面右键菜单
    • 合并选中页面并另存为
    • 左旋90°
    • 右旋90°
    • 删除页面

页面编辑

  • 旋转页面:选中页面后,右键菜单或工具栏选择“左旋90°”或“右旋90°”,支持批量旋转,旋转后缩略图自动刷新且保持选中状态。
  • 删除页面:选中页面后,右键菜单或工具栏选择“删除页面”,支持批量删除,自动更新工作区和界面。

PDF 合并与保存

  • 合并选中页面:选中页面后,右键菜单或工具栏选择“合并选中页面”,按当前顺序合并为新 PDF 并弹出保存对话框。
  • 合并全部页面:工具栏“保存工作区”按钮,将当前所有页面按顺序合并为新 PDF 并弹出保存对话框。
  • 合并实现说明:合并操作会根据页面原始 PDF 路径和页码,逐页插入到新 PDF,保证页面顺序和内容一致。

About

一个用 Python 和 PySide6 编写的轻量级 PDF 页面编辑器,支持多 PDF 文件的页面级操作、合并、排序、旋转、删除等常用功能。适合日常 PDF 页面管理与编辑。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages