Python脚本怎样实现批量把大量PDF文档加盖电子公章

PyMuPDF(fitz)支持在PDF页面叠加公章图片,而PyPDF2不支持图像渲染和alpha通道合成;需用fitz.Rect指定坐标、处理透明度/旋转/底纹,并注意大文件懒加载及交互元素保留。

用 PyPDF2 或 PyMuPDF(fitz)叠加公章图片到 PDF 页面

PyPDF2 本身不支持图像渲染,只能做页面合并、文本提取等基础操作;真正能“盖章”的是 PyMuPDF(即 fitz),它底层基于 MuPDF,可直接在 PDF 页面上绘制图像、文字、矢量图形。如果你用 PyPDF2 尝试 merge_page() 加一个带透明背景的 PNG 公章,大概率会失败或位置错乱——因为 PyPDF2 不解析图像坐标系,也不支持 alpha 通道合成。

实操建议:

  • 安装 PyMuPDFpip install PyMuPDF(注意不是 fitz 单独包,import fitz 是它的模块名)
  • 公章图推荐用 300dpi 以上、带 Alpha 通道的 .png,避免白边;尺寸建议控制在宽高 200–400px,否则缩放易失真
  • 盖章位置用绝对坐标(单位:PDF 默认用户空间,1/72 英寸),例如右下角常见位置:x = page.rect.width - 250y = page.rect.height - 100
  • 调用 page.insert_image(rect, filename="seal.png"),其中 rectfitz.Rect(x0, y0, x1, y1),注意 y 轴向下为正,PDF 原点在左下角

批量处理时如何保持原 PDF 的书签、超链接、表单域不被破坏

PyMuPDFdoc.save() 时默认会丢弃交互式元素(如表单域、JavaScript)、弱化书签结构、且重写所有对象流——这不是 bug,是 MuPDF 渲染模型决定的。如果你的原始 PDF 含电子签名字段或填空表单,直接 insert_image 后保存,这些内容大概率失效。

实操建议:

  • 优先用 doc.copy_page() + doc.insert_pdf() 组合,把盖章后的页面插入新文档,而非覆盖原页;这样能保留源文档元数据和结构
  • 若必须修改原文件,保存前加参数:doc.save("out.pdf", garbage=4, deflate=True, clean=True),其中 garbage=4 可最大限度保留交叉引用表
  • 书签需手动重建:遍历 doc.get_toc() 获取原 TOC,盖章后用 doc.setToC(toc_list) 写回;不能依赖自动继承
  • 超链接(page.get_links())可读取并重新插入,但目标页码可能因插入操作偏移,需动态校准

公章透明度、旋转角度、防伪底纹怎么控制

公章不是简单贴图——实际业务中常要求 30% 透明度、逆时针旋转 15°、叠加浅灰底纹文字(如“仅供XX用途”)。这些在 fitz 中必须分步实现,无法靠单个参数搞定。

陌言AI

陌言AI是一个一站式AI创作平台,支持在线AI写作,AI对话,AI绘画等功能

下载

实操建议:

  • 透明度:先用 PIL 打开公章图,调整 alpha 通道,再保存为临时 PNG;fitz 本身不提供图像混合参数
  • 旋转:不要对图片预旋转,而是在 insert_image() 前构造带变换矩阵的 Rect,或更稳妥地用 page.show_pdf_page() + clip 区域 + transform 参数
  • 底纹文字:用 page.insert_textbox() 绘制半透明白色文字,字体选无衬线(如 helv),字号设小(8–10pt),颜色 (0.8, 0.8, 0.8),再置于公章图层下方
  • 防重叠检测:对每页检查是否已有类似区域(通过 page.get_image_info() 提取所有图像 bbox),避免重复盖章

大文件(>50MB)或千页级 PDF 处理卡死、内存爆掉怎么办

PyMuPDF 默认把整个 PDF 解压进内存,遇到扫描版 PDF(每页是巨幅图像)或含大量嵌入字体的文档,doc = fitz.open("big.pdf") 可能瞬间吃光 4GB 内存。这不是代码写错了,是设计使然。

实操建议:

  • 启用懒加载:fitz.open("big.pdf", lazy=True),此时页面对象只在首次访问时解码,大幅降低启动内存
  • 逐页处理 + 立即释放:for i in range(doc.page_count): page = doc[i]; ...; page = None,避免 Python 引用计数延迟回收
  • 跳过非目标页:用 page.get_text("text") 快速判断是否含关键词(如“合同编号”),再决定是否盖章,避免全量渲染
  • 导出为 PDF/A 或压缩图像:盖章后调用 doc.save("out.pdf", deflate=True, garbage=3),比默认设置体积小 30–60%

公章位置计算、多页适配、跨平台字体路径、CMYK 转 RGB 等细节,每个都可能让脚本在客户现场崩一次。别信“一键盖章”封装库——它们只是把上面这些坑帮你踩了两遍而已。

相关推荐:

小米米家 iOS 版 App 获 11.6.200 更新:新增能源模块、优化设备批量配网等功能

感谢网友 太二真人 的线索投递! 6 月 29 日消息,小米米家 iOS 版 App 今天更新 11.6.200 版本,主要是为场景页面新增了能源模块,以及新增设备批量配网等功能,提升实用性。附本次更新详情如下:新增:场景页面新增能源模块,可查看家中部分智能设备用电情况优化:家庭自动切换功能,根据手机定位展示家庭,可在家庭管理中开启设备批量配网功能,发现多个 BLE Mesh 设备时,可以批量选择...

AI 批量造富,奢侈品行业迎来全新消费主力

7 月 1 日消息,人工智能正在批量催生千万富翁,一波消费热潮随之而来。海量资本涌入人工智能初创企业与配套基础设施,企业估值一路暴涨。创始人手中账面股权化作真金白银,头部 AI 企业员工持有的股权激励也价值数百万美元。如今,人工智能催生的财富不再只停留在纸面上。初创公司创始人抛售价值数十亿美元的股权;早期员工套现短短几年内翻数倍的股份;顶尖 AI 研究员与工程师拿到的薪酬包,放在十年前的科技行业根...

海螺AI怎么用来批量生成不同风格的商品描述?

若需为大量商品快速生成风格多样、语感适配且避免同质化的描述,可借助海螺AI通过五种路径实现:一、风格矩阵指令并行输出;二、变量占位符构建可扩展模板;三、调用内置平台专用风格引擎;四、结合用户评论情感倾向反向生成;五、通过角色设定驱动风格迁移。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜ 如果您需要为大量商品快速生成风格多样、语感适配且避免...

vivo浏览器怎么提取网页中的高清背景素材与各种大图_vivo浏览器图片长按批量保存插件功能

vivo浏览器无法保存网页背景图时,可依次尝试:一、开启桌面模式暴露图片;二、审查元素提取CSS背景图链接;三、安装图片采集插件批量下载;四、用超级拖放截取高分率图层;五、启用资源嗅探器捕获异步大图。 如果您在vivo浏览器中浏览设计类、壁纸类或视觉展示类网页时,发现页面背景图、Banner大图或轮播主图无法通过常规长按保存,且单张操作效率低下,则可能是由于图片被CSS背景属性调用、以Base64...

米侠浏览器如何批量导出已保存的网页链接?

可导出为标准HTML书签文件:先确认米侠浏览器“存网页”文件位于/Download/MiXiaWebArchive/,再用Solid Explorer等工具从.mhtml提取标题与URL生成TSV,最后按NETSCAPE格式拼装为bookmarks.html并验证跳转。 你需要把米侠浏览器里已用“存网页”功能保存下来的全部链接,一次性导出为可读、可管理的HTML书签文件,而不是手动翻找每个MHTM...

韵达超市怎么批量导入商品信息

韵达快递超市批量导入商品需下载标准Excel模板,仅在5列填写数据且不可改动表头;条码不能为空或重复;保存为.xlsx格式;上传后3~8秒完成导入,失败可查错误详情修改重传;导入后须刷新商品列表核对条码与库存。 韵达快递超市需要一次性上架几十种新货,手动逐条录入商品名称、规格、条码和库存既耗时又容易填错,必须用批量导入功能快速完成。 下载并填写商品导入模板 进入韵达快递超市App → 点击【商品管...

Excel怎么批量插入图片并对齐 单元格快速导入照片技巧

用VBA宏可批量插入图片并精准贴合单元格,支持按编号命名自动匹配、尺寸自适应、位置锁定;相机工具生成动态快照实现内容联动更新;选择窗格支持批量重设尺寸与锚定;Kutools提供无代码图形化批量导入方案。 要在Excel中将几十张产品照片快速插入并严丝合缝地贴进对应单元格,避免手动拖拽错位、缩放变形或位置漂移,必须绕过“插入→图片→一张张点选”的低效路径。 用VBA宏按路径批量插入并精准贴合单元格 ...

如何用千问批量处理文本分类任务?

可实现非结构化文本批量语义分类的五种技术路径:一、调用千问API批量处理;二、Qwen3-Embedding+本地分类器联合建模;三、OpenClaw规则驱动流水线;四、千问APP表格Agent端侧处理;五、Qwen3-Reranker联合排序与分类。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜ 如果您希望将大量非结构化文本(如用户反馈、...