写了个本地 PDF 工具箱,不用联网、不用会员,只管合并拆分管删页

in STEEM CN/中文yesterday

图片.png

整理项目材料的时候,文件夹里摊了一堆 PDF:合同、报告、扫描件,有些是中间版本,有些是终稿。想把它们拼成一份归档——掏出 WPS,它跟我要会员。

拜托,我就是拼个文件。

找了一圈在线工具,每个都要把文件传到服务器。合同和财务文档我是真不敢往上传。命令行工具倒是能跑,但没有缩略图预览,删个页得先打开 PDF 数页码,再用命令行指定范围,搞到最后比手动整理还累。

于是今天自己写了一个。


它能干四件事

都带每页缩略图预览,点图片操作,不用记页码。

合并 PDF。 选文件拖进来,可以上移下移排顺序,每个卡片显示首页缩略图、文件名、页数。点合并,选个保存位置,完事。

拆分 / 抽取页面。 打开一个 PDF,每一页都是小缩略图。点中你要的页,支持全选反选。有两种用法:拆成多个文件(比如第 1-3 一文件、第 5 一个、第 8-10 一个),或者把选中的抽出来合成一份。

调整页码顺序。 拖拽缩略图就能重排。排好了存成新文件。

删页 + 识别空白页。 点缩略图标记删除(红色很显眼),也可以让程序自动扫描哪些是空白页——调个敏感度滑块,点一下检测,扫出来的空白页自动标红。这个功能是之前写的一个小工具的算法移过来的,用 PyMuPDF 逐像素算着墨比例,原理不复杂但准确率还行。


为什么不做成在线的

简单说:不想传文件。

这类工具逻辑很轻,不需要显卡,不需要云算力。传上去唯一的受益者是服务提供方。我这个全是本地跑,选文件用的是 Windows 自己的对话框,处理用的是 pypdf 和 PyMuPDF 两个 Python 开源库。网线拔了照样干活。


几个小细节

  1. 缩略图是 PyMuPDF 实时渲染的,不是占位图标。60 DPI,每页大概几十毫秒,几百页的 PDF 渲染起来会等一下但不算慢。

  2. 界面是 Flet 写的,Flutter 引擎,自带圆角阴影和深色模式。算不上精美,但比 tkinter 能看。

  3. 打包成一个 exe 文件,83MB,没安装程序。启动第一次要解压内置资源,会多等几秒。

  4. 源码在压缩包里。AGPL-3.0 授权,怎么改随便。


怎么拿到

网盘下载:城通网盘
网盘密码:0033
解压密码:PDF常用工具箱.7z

压缩包里有:

  • PDF常用工具箱.exe,双击跑
  • code/ 完整源码,Python 3.14,pip install -r requirements.txt 就能跑
  • README.md 使用说明

macOS / Linux 直接跑源码。


最后

代码是 GLM 5.2DeepSeek V4 Pro 搭手写的——界面结构、PDF 处理逻辑、甚至 debug 过程中好几个 Flet API 的坑都是靠 AI 发现的。这篇文章是 DeepSeek V4 Pro 润色的。

如果你对 AI 辅助写代码有兴趣,欢迎订阅下面的 Tokenplan :

  • 👉 Z.AI — GLM 官方海外版,比国内版贵,但是能买到
  • 👉 OpenCodeGo — 多模型订阅平台,5美元一个月
Sort:  

Upvoted! Thank you for supporting witness @jswit.

Thank you for sharing on steem! I'm witness fuli, and I've given you a free upvote. If you'd like to support me, please consider voting at https://steemitwallet.com/~witnesses 🌟

This project reminds me of the importance of having control over sensitive documents and avoiding online risks. How do you plan to share or distribute your tool with others? 🤔💻

You can click here to download. If the webpage requires a password, it is 0033. The password for extracting the compressed file is: PDF常用工具箱.7z

Coin Marketplace

STEEM 0.04
TRX 0.33
JST 0.081
BTC 62305.60
ETH 1649.35
USDT 1.00
SBD 0.42