pdf骑缝章工具增强版本

这是开源项目 make-look-scanned(Go + MuPDF)的 Python 图形化重写版。

功能

pdf文章盖章还要重复扫描。我们把电子档文档和电子档公章导入软件。生成即可。省掉纸张。

给 PDF 模拟 “老旧扫描件” 效果:灰度、纸张泛黄、失焦模糊、扫描噪点、

边缘暗角、随机倾斜,并以低质量 JPEG 重新打包成 PDF。

提供可视化窗口:选文件、拖滑块调参数、多页实时预览(可翻页浏览每一页的做旧效果)、一键转换。

参数说明(与原版 CLI 对齐)

参数默认说明
dpi150渲染分辨率
skew0.6最大随机倾斜角度 (度),0 关闭
grayscale勾选Rec.601 灰度化
paper_tone0.6暖白纸色强度 0..1
noise0.08扫描颗粒噪点 0..1
blur0.4高斯模糊 σ
edge_shadow0.15边缘暗角 0..1
jpeg_quality70JPEG 压缩质量 (越低扫描感越强)

任一数值参数为 0 即关闭对应特效(与原版一致)。

确定性

默认种子由 PDF 内容哈希 (FNV-1a 64) 生成:同一文件 + 同一参数 →

每一页的画面内容逐字节完全一致。在界面 “固定种子” 框填任意整数可换一种观感;

填 0 表示自动。

说明:输出 PDF 文件级的二进制 /ID 标识由封装库 (PyMuPDF) 每次随机生成,因此

整个 .pdf 文件字节会略有不同,但这不影响任何阅读器 / 打印显示,画面完全一致。

算法等价性

特效顺序与原版一致:灰度 → 泛黄 → 模糊 → 噪点 → 暗角 → 倾斜。

所有公式逐像素复刻 Go 源码(含纸色 RGB、black_lift、噪声标准差、暗角 12% 带、

倾斜双线性插值 + 越界纸色填充)。PDF 渲染用 PyMuPDF (与 go-fitz 同源 MuPDF)。

注意:因 Go 与 Python 随机数算法不同,本版输出与原版 Go 二进制不逐字节一致,

但本版自身完全确定性,观感等价。