You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PDF表单的Image Field中添加图片?(pypdf相关)

解决pypdf无法给PDF表单图片字段添加图片的问题

pypdf的表单处理API主要针对文本字段优化,对图片字段的原生支持不足,推荐用**PyMuPDF(fitz)**来处理,它能直接识别PDF表单中的图片字段并插入图片,步骤如下:

1. 安装依赖

pip install pymupdf

2. 代码实现

import fitz  # 导入PyMuPDF

# 打开目标PDF表单
doc = fitz.open("your_form.pdf")
# 定位到包含图片字段的页面(示例为第一页)
page = doc[0]

# 遍历所有表单字段,筛选出图片字段
for field in doc.widgets():
    if field.field_type == fitz.PDF_WIDGET_TYPE_IMAGE:
        # 获取图片字段的位置和尺寸矩形
        field_rect = field.rect
        # 插入图片,自动适配字段尺寸并保持比例
        page.insert_image(field_rect, filename="your_image.png", keep_proportion=True)
        # 可选:将字段设为只读,防止后续误修改
        field.field_flags |= fitz.PDF_FIELD_FLAG_READ_ONLY

# 保存填充后的PDF
doc.save("filled_form.pdf")
doc.close()

备选方案(基于pypdf手动定位)

如果坚持使用pypdf,需要先通过PDF编辑工具获取图片字段的坐标,再手动插入图片:

from pypdf import PdfReader, PdfWriter
from pypdf.generic import RectangleObject

reader = PdfReader("your_form.pdf")
writer = PdfWriter()

page = reader.pages[0]
# 替换为实际图片字段的坐标(x1, y1, x2, y2)
img_rect = RectangleObject([150, 250, 350, 450])
# 插入图片并适配矩形区域
page.add_image("your_image.png", rect=img_rect, fit="contain")

writer.add_page(page)
with open("filled_form.pdf", "wb") as f:
    writer.write(f)

内容的提问来源于stack exchange,提问作者aideed programmer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 09:42:09