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

如何用Python为PDF添加预填充内容的可编辑文本框?

给PDF添加带预填充内容的可编辑文本框的可行方案

推荐工具:pikepdf

pikepdf对PDF的AcroForm表单支持完善,能直接在现有PDF中添加带预填充值的可编辑文本框,兼容Adobe Reader及多数通用PDF阅读器。

步骤1:安装依赖

pip install pikepdf

步骤2:编写脚本

import pikepdf
from pikepdf.models import AcroForm, TextField

# 打开目标PDF文件
with pikepdf.Pdf.open("input.pdf") as pdf:
    # 检查并创建AcroForm(PDF表单的核心结构)
    if "/AcroForm" not in pdf.Root:
        pdf.Root.AcroForm = AcroForm(pdf, {})
    acroform = pdf.Root.AcroForm

    # 创建文本字段,设置预填充内容、位置和大小
    text_field = TextField(
        pdf,
        field_name="custom_text",
        value="Hello World!",
        rect=[100, 700, 300, 730]  # 坐标格式:[左下X, 左下Y, 右上X, 右上Y],可按需调整
    )

    # 将字段加入表单,并设置默认显示样式
    acroform.Fields.append(text_field.ref)
    acroform.set_default_appearance()

    # 保存修改后的PDF
    pdf.save("output.pdf")

关键说明

  • rect参数控制文本框的位置和尺寸,PDF默认以左下角为坐标原点,需根据页面实际布局调整数值。
  • value参数即为预填充的“Hello World!”,打开PDF后可直接编辑为“Hello Jim!”。
  • set_default_appearance()确保文本框在阅读器中显示正常,避免样式异常。

备选方案:reportlab + PyPDF2(适合新建表单或合并场景)

如果需要基于空白页创建表单再合并到现有PDF,可使用reportlab生成带预填充值的表单页,再用PyPDF2合并:

安装依赖

pip install reportlab PyPDF2

编写脚本

from reportlab.pdfgen import canvas
from PyPDF2 import PdfReader, PdfWriter

# 生成带预填充文本框的表单页
c = canvas.Canvas("temp_form.pdf")
c.setFont("Helvetica", 12)
c.acroForm.textfield(
    name="hello_field",
    x=100, y=700, width=200, height=30,
    defaultValue="Hello World!",
    borderColor="black"
)
c.save()

# 合并到现有PDF
reader = PdfReader("input.pdf")
writer = PdfWriter()

# 添加原PDF所有页面
for page in reader.pages:
    writer.add_page(page)

# 添加表单页(如需嵌入到指定页面,需调整页面顺序)
form_reader = PdfReader("temp_form.pdf")
writer.add_page(form_reader.pages[0])

# 保存结果
with open("output.pdf", "wb") as out_file:
    writer.write(out_file)

验证效果

生成的output.pdf在Adobe Reader或其他支持PDF表单的阅读器中打开时,文本框会显示预填充的“Hello World!”,可直接编辑为“Hello Jim!”。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 01:50:17