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

如何在Adobe Acrobat中通过JS动作将PDF表单值生成XML文件

在Adobe Acrobat中通过JS生成并导出XML文件的方案

核心思路

Acrobat JavaScript没有内置的XML序列化工具,需要手动拼接XML字符串,再利用Acrobat的文件保存API将内容导出为XML文件交付用户。以下是具体实现步骤:

1. 处理XML特殊字符转义

为避免XML语法错误,需先将表单字段值中的特殊字符转义,转义函数示例:

function escapeXml(str) {
    return str.replace(/&/g, '&')
              .replace(/</g, '&lt;')
              .replace(/>/g, '&gt;')
              .replace(/"/g, '&quot;')
              .replace(/'/g, '&apos;');
}

2. 完整按钮JS动作代码

将以下代码绑定到按钮的「鼠标点击」动作中(替换为你的实际字段名称):

// 1. 获取并转义表单字段值(你已实现的部分,此处为示例)
var field1Val = escapeXml(this.getField("FieldName1").valueAsString);
var field2Val = escapeXml(this.getField("FieldName2").valueAsString);
var field3Val = escapeXml(this.getField("FieldName3").valueAsString);

// 2. 构建符合规范的XML内容
var xmlContent = `<?xml version="1.0" encoding="UTF-8"?>
<FormData>
    <Field1>${field1Val}</Field1>
    <Field2>${field2Val}</Field2>
    <Field3>${field3Val}</Field3>
</FormData>`;

// 3. 导出XML文件给用户
try {
    // 弹出保存对话框,指定默认文件名和格式
    var savePath = app.saveAs({
        cFileName: "表单数据.xml",
        cFileFilter: "XML Files (*.xml)|*.xml",
        cToType: "text/plain"
    });
    
    // 将XML内容写入选定文件
    if (savePath) {
        util.writeFile(savePath, xmlContent, "UTF-8");
        app.alert("XML文件已成功保存!");
    }
} catch (e) {
    app.alert("导出失败:" + e.message);
}

关键注意事项

  • 权限设置:Acrobat会阻止未受信任的脚本执行文件操作,需将该PDF添加到Acrobat的「受信任位置」,或在弹出权限提示时选择允许。
  • 移动端限制:你查阅的移动端Acrobat JS API能力有限,app.saveAs()和util.writeFile()在移动端可能无法正常工作,若需适配移动端,建议通过提交到服务器再返回文件的方式实现。
  • XML规范:确保拼接的XML结构合法,比如标签闭合、属性引号正确等,复杂场景可分步构建节点再拼接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 16:45:22