Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

页裁

一个在浏览器本地运行的 PDF 页码整理工具。适合从一本 PDF 书中抽取章节、删除无关页,或整理双页扫描件。

PDF 文件不会上传到服务器:读取、处理和下载都在你的浏览器中完成。

能做什么

  • 提取页面:按页码生成新的 PDF,例如 1, 3-5, 8
  • 删除页面:移除指定页,保留其余页面。
  • 页面缩略图:看着页面点击选择,并可按住 Shift 连续选择;选择结果与页码输入框同步。
  • 页面排序:拖拽缩略图调整页面顺序,或一键将整份 PDF 倒序。
  • 无损旋转:将指定页面旋转 90°、180° 或 270°,保留原有文字层和页面内容。
  • 密码打开与保护:输入你已知的打开密码来处理加密 PDF,或为生成的新副本添加打开密码。
  • 扫描页优化:逐页自动识别并裁掉白边,可调整保留边距、亮度、对比度和灰度;未选页面原样保留。
  • 解除使用限制:对能正常打开、但禁止编辑、提取或打印的 PDF,生成一份不保留这些使用限制的副本。
  • 切开双页扫描:指定哪些阅读器页面需要切开,自定义切割线位置和左右顺序;未选页面会原样保留,可用于单页封面。
  • 校正轻微倾斜:在切开双页前,以 0.1° 为单位微调旋转角度,让影印文字更接近水平。

使用说明

  1. 将一个 PDF 拖入页面,或点击“选择 PDF 文件”。
  2. 选择一种操作。
  3. 按提示完成设置,点击生成按钮;新文件会直接下载。

提取或删除页码

填写的是 PDF 阅读器中的页面序号,不是印刷在书页上的页码。

支持单页与连续范围,用英文逗号分隔:

1, 3-5, 8

上例表示第 1、3、4、5、8 个 PDF 页面。

解除使用限制

这一项面向“能打开,但阅读器显示不允许复制、编辑或打印”的权限限制 PDF。它会在本地生成完整的新副本。

它不会猜测、破解或绕过未知的打开密码。如果你知道并有权使用打开密码,可在文件载入失败后的密码框中输入;密码仅在本机内存中交给 QPDF 使用,不会保存或上传。

添加密码保护

选择“添加密码保护”,连续输入两次相同密码,即可生成需要该密码才能打开的新副本。工具会随机生成独立的所有者密码;用户输入的密码不会保存,忘记后本工具无法找回,请妥善记录。

切开双页扫描与倾斜校正

适用于一张横向 PDF 页面中并排放着左右两页书的情况。

  1. 选择“切开双页扫描”。
  2. 选择要切开的阅读器页面。单页封面不要选择,它会原样保留。
  3. 调整切割线位置,并选择“先左后右”或“先右后左”。
  4. 如果文字整体倾斜,使用“校正文字倾斜”的滑杆或 / + 按钮微调。文字向左歪就向右调,反之亦然。

切开和校正需要先将页面渲染为图像,因此输出是图像型 PDF:原文件的可搜索文字层、链接、书签和表单不会保留。处理前请保留原文件。

裁剪白边与扫描图增强

选择“优化扫描页”,再选择需要处理的阅读器页面。自动裁剪会逐页寻找非白色内容边界,“保留边距”用于避免裁得太紧;亮度、对比度和灰度化可改善泛黄、偏暗或层次不足的影印页。

被优化的页面会转为图像型页面,未选页面仍保留原始 PDF 内容。自动识别可能受深色纸张、页边批注或污点影响,请先用少量页面试验合适参数,并保留原文件。

依赖与安装

使用已部署的网站

无需安装任何 PDF 工具。使用现代桌面浏览器打开网站即可;PDF 会在浏览器中本地处理。

本地开发或自行部署

需要先安装:

  • Node.js 20 或更高版本(自带 npm)
  • Git(仅在从源码克隆项目时需要)

不需要单独安装 QPDF、Poppler、Python 或 Adobe Acrobat:

  • QPDF 以 WebAssembly 形式随 qpdf-run 安装,用于本地解除 PDF 使用限制。
  • PDF.js 随 npm 依赖安装,用于渲染、切开双页和校正倾斜。

安装项目依赖:

npm install

本地运行

npm run dev

终端会显示本地访问地址,通常是 http://127.0.0.1:5173

构建静态发布文件:

npm run build

构建结果位于 dist/,可部署到任意静态网站托管服务。

技术说明

  • pdf-lib:提取、删除与重新生成 PDF。
  • QPDF WebAssembly:在浏览器内处理 PDF 使用限制。
  • PDF.js + Canvas:渲染、旋转校正并切开双页扫描。
  • Vite:本地开发与静态构建。

PDF 数据不会发送到本项目的后端,因为项目没有后端。页面会加载第三方字体资源;若你需要完全离线使用,可将 src/style.css 中的 Google Fonts 导入移除或替换为本地字体。

边界与注意事项

  • 请只处理你拥有、获授权使用或依法可以处理的文件。
  • 大型扫描书会占用较多内存,双页切开尤其如此;建议一次处理一本书,并在完成后关闭标签页以释放内存。
  • 倾斜校正目前是对整份双页扫描应用同一个角度;如果各页倾斜方向不一致,需要分批处理。
  • “解除使用限制”针对的是 PDF 的使用权限标志,不等同于支持未知打开密码或其他 DRM 方案。

开发验证

npm run build
node scripts/create-test-pdf.mjs

测试脚本会在 tmp/pdfs/ 生成基础 PDF 和双页扫描测试文件。tmp/ 是本地临时目录,不纳入版本控制。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages