以编程方式填充 XFA(Adobe LiveCycle)PDF 表单。适用于具有 Form: XFA 的 .pdf 文件(可用 pdfinfo 检查)。常用工具如 pdftk 等。
填充 XFA PDF 表格是一项面向实际任务的技能,主要用于从 CLI 中填入 Adobe LiveCycle XFA 表格;保护标准 PDF 工具无法填补的空白;
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
通过命令行(CLI)填充任意 Adobe LiveCycle XFA 表单。填补了标准 PDF 工具无法解决的空白。
XFA 表单(pdfinfo 输出中显示为 Form: XFA)将数据以 XML 形式嵌入 PDF 内部,而非使用标准 AcroForm 字段。诸如 pdftk、pypdf 和 PyPDF2 等工具会静默失败或输出空结果。本脚本直接修改嵌入的 XFA XML 内容。
pip install pikepdf
SCRIPT="/scripts/fill_xfa.py" # 1) 验证表单是否为 XFA 格式: pdfinfo form.pdf | grep Form # 应显示:Form: XFA # 2) 发现字段名称: python3 "$SCRIPT" fields form.pdf # 3) 从 JSON 填充表单: python3 "$SCRIPT" fill form.pdf -o filled.pdf -d data.json
fields — 列出数据字段python3 "$SCRIPT" fields form.pdf
输出按字母顺序排序的字段名,并附带当前值及重复出现次数。
fill — 设置字段值支持三种输入方式,可自由组合使用:
# 可重复使用的 --set 参数:
python3 "$SCRIPT" fill form.pdf -o out.pdf
--set "Eigentümer_Name=Müller"
--set "Eigentümer_Vorname=Anna"
--set "PLZ=84424"
# JSON 文件:
python3 "$SCRIPT" fill form.pdf -o out.pdf -d fields.json
# 通过 stdin 管道输入:
printf '{"Name":"Müller","Vorname":"Anna"}' |
python3 "$SCRIPT" fill form.pdf -o out.pdf --stdin
{
"Feldname": "Wert",
"Eigentümer_Name": "Müller",
"Datum": "2026-05-05"
}
字段名必须与表单中 XML 元素的名称完全一致(可通过 fields 命令发现)。
某些表单会复用字段名(例如多个 Textfeld1)。支持两种模式:
--set Textfeld1=3 将所有同名字段设为 "3"{"Textfeld1": ["A", "B", "C"]},值将按顺序分配给各重复字段(第一个字段得 "A",第二个得 "B",依此类推)pdfinfo form.pdf | grep Formxmlns:* 声明(通常不影响使用)# 发现字段:
python3 "$SCRIPT" fields tonnenanmeldung_blank.pdf
# 从 JSON 填充(通过 stdin 管道输入):
python3 "$SCRIPT" fill tonnenanmeldung_blank.pdf -o tonnenanmeldung_filled.pdf --stdin <<'EOF'
{
"Neuantrag": "1",
"Eigentümer_Name": "Müller",
"Eigentümer_Vorname": "Anna",
"Eigentümer_Straße": "Hauptstraße",
"Eigentümer_Straße_Nummer": "5",
"Eigentümer_PLZ": "84424",
"Eigentümer_Ort": "Isen",
"Eigentümer_seit": "2026-01-15",
"Grundstück_Straße": "Beispielweg",
"Grundstück_PLZ": "85435",
"Grundstück_Ort": "Erding",
"Grundstück_Haus_Nummer": "12",
"Textfeld1": "3",
"Restmüll_ab": "07/2026",
"Zugang_80_l": "1",
"Bio_Zugang_80_l": "1",
"Papier_Zugang_240_l": "1",
"Kontoinhaber_Name": "Müller, Anna",
"Kontoinhaber_Straße": "Hauptstraße 5",
"Kontoinhaber_Ort": "84424 Isen",
"Kontoinhaber_Kreditinstitut": "VR-Bank",
"Kontoinhaber_IBAN": "DE",
"Kontoinhaber_IBAN_Nummer": "1234567890",
"Kontoinhaber_BIC": "GENODEF1XXX",
"Datum": "2026-05-05"
}
EOF
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习