Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

scan_sim — PDF 扫描件仿真

把「已嵌签名的 PDF」(Word 嵌好签名 → Save As PDF)仿真成富士施乐 ApeosPort-V C5575 T2 扫描件质感,用于日常行政替代物理打印 + 扫描。

效果

  • 300dpi、单色 1-bit(黑/白二值),无抖动、无灰阶
  • PDF 1.3,无旋转、无外框
  • 文字笔画边缘缺墨白点、渗墨黑点(黑白交界对称随机翻转)
  • 表格横/竖线外缘离散黑色毛刺 + 短段断墨缺口(不连成平行虚线/叠线)
  • 毛刺整页均匀分布,签名因面积小自然毛刺少
  • 元数据洗成真机叙事:Producer / Creator = ApeosPort-V C5575 T2,时区 +08

安装

依赖 Python 3.11+ 与以下库:

pip install -r requirements.txt

依赖清单(已锁定版本):pymupdf / pillow / numpy / opencv-python。

用法

# 基本:源.pdf 目标.pdf(目标可省略,默认覆盖式生成 1-1.pdf 之类测试名不推荐)
python scan_sim.py <源>.pdf <目标>.pdf

# 示例
python scan_sim.py D:\1.pdf 260826-扫描件仿真.pdf

--demo 自测:用内置示例验证输出指纹(PDF 版本、Producer、分辨率)。

参数

参数 默认 说明
--dpi 300 栅格化分辨率
--fuzz 1 毛刺环宽(px),越小越贴线
--white-p 0.00025 黑白交界对称翻转比例(文字缺墨+渗墨)
--line-p 0.005 表格线专属毛刺密度(黑突刺+短段白缺口)
--hwhite-p / --vwhite-p 0 横/竖线专属翻转比例(0=用 --white-p)
--angle 0 固定倾斜角(度),默认不旋转
--skew 关闭 启用随机微倾斜(易致表格叠线,默认关)
--skip-big 关闭 跳过签名大块(默认关:毛刺均匀整页)
--frame 关闭 开启极淡贴边黑框(默认关,用户不要外框)
--seed 随机 随机种子,固定可复现

说明 / 边界

  • 源 PDF 必须是「整页栅格化」的(Word 导出 PDF 通常如此);文本可选型 PDF 经栅格化后变为不可选,符合扫描件特征。
  • 含彩色内容(如红章)当前按单色处理,章会变黑。
  • 源文件不会被修改,脚本只生成新的目标文件。

原理概要

  1. 整页栅格化到 300dpi 灰度
  2. 硬阈值二值化(不抖动,避免孤立噪点)
  3. 黑白交界对称随机翻转(文字缺墨 / 渗墨)
  4. 表格长横竖线外缘环撒离散黑突刺 + 线身短段白缺口
  5. 重建成整页 1-bit 图像,洗元数据,输出 PDF 1.3

About

把「已嵌签名的 PDF」(Word 嵌好签名 → Save As PDF)仿真成富士施乐 ApeosPort-V C5575 T2 扫描件质感,用于日常行政替代物理打印 + 扫描。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages