用途:程序化签署和填写 PDF 表单,适用于签署信函、理赔表等场景,支持数字 PDF(含文本层)与扫描 PDF(通过 OCR)。
主要能力:用 pymupdf 在 PDF 上插入签名图片、填写文本字段、勾选复选框;对扫描件用 tesseract OCR 定位字段;渲染页面为 PNG 以便视觉校验。
使用方式:先询问用户签名图片位置,切勿假设路径,也不要将签名图提交到仓库。若签名图为白底 JPG,先转为透明 PNG,否则会遮挡下方文字或线条。安装:python3 -m venv ./scratch/venv 后执行 ./scratch/venv/bin/pip install -q pymupdf pillow;OCR 需 brew install tesseract 并设置 TESSDATA_PREFIX(Homebrew 为 /opt/homebrew/share/tessdata)。优先用 page.search_for 定位字段;扫描件 page.get_text() 为空时改用 page.get_textpage_ocr(full=True, dpi=200)。用 insert_image 放签名、insert_text 填文本与勾选框,保存到新文件,绝不覆盖源文件。每次修改后用 page.get_pixmap(dpi=100).save("check.png") 渲染并查看确认。
限制与注意:扫描件无文本层会导致搜索无结果;标签可能重复匹配,需按 y 坐标过滤;复选框 X 位置需视觉校验;多份副本需循环处理;重新签署后邮件草稿可能仍带旧附件,需重建草稿。签名图位置、填写值等需用户提供,资料未提供默认值。