Adobe Acrobat DC JavaScript多输入框动态印章制作求助
没问题!我正好有Adobe Acrobat DC里用JavaScript做动态印章的经验,你说的连续弹7个弹窗确实太折腾人了——咱们直接用Acrobat的自定义对话框功能,把所有输入项都塞进一个弹窗里搞定。
解决方案:自定义多输入对话框
原来的app.response只能生成单个输入框的弹窗,要实现多输入,得用Acrobat JS的Dialog类来构建自定义弹窗。下面是适配你需求的完整代码,我会标注关键部分:
if(event.source.forReal && (event.source.stampName == "#stamp1")) { // 创建自定义对话框实例,设置弹窗标题、尺寸和对齐方式 var dialog = app.dialogs.add({ name: "印章信息填写", width: 420, height: 350, align: "center" }); // 批量添加输入项:每个输入项对应一行(标签+输入框) // 你可以根据实际需求修改标签文本和输入框数量 var inputFields = []; var inputLabels = [ "Anvises til udbetaling", "输入项2", "输入项3", "输入项4", "输入项5", "输入项6", "输入项7" ]; for(var i=0; i<inputLabels.length; i++){ var row = dialog.dialogRows.add(); // 添加标签 row.dialogColumns.add().staticTexts.add({ staticText: inputLabels[i] + ":", fontSize: 11 }); // 添加输入框,并保存引用方便后续取值 var input = row.dialogColumns.add().editFields.add({ editField: "", width: 250, fontSize: 11 }); inputFields.push(input); } // 显示对话框,获取用户操作结果(true=确认,false=取消) var userConfirmed = dialog.show(); if(userConfirmed) { // 用户点击确认后,将输入值赋值给印章的对应字段 // 注意:这里的字段名要和你印章上创建的文本字段名完全一致! // 假设你印章上的文本字段名为text1、text2...text7 for(var j=0; j<inputFields.length; j++){ this.getField(`text${j+1}`).value = inputFields[j].value; } } // 销毁对话框,释放资源 dialog.destroy(); }
关键注意事项
- 提前创建印章字段:在编辑印章模板时,必须给每个需要动态填充的位置添加文本字段,并设置唯一的名称(比如
text1到text7),否则JS找不到对应的赋值目标。 - 自定义调整:你可以修改
inputLabels数组里的文本,改成你实际需要的输入项提示;也可以调整弹窗的width、height以及控件的fontSize来适配你的视觉需求。 - 取消逻辑:如果用户点击弹窗的取消按钮,对话框会直接关闭,不会修改任何印章字段的值,避免无效输入。
内容的提问来源于stack exchange,提问作者Zhief
相关产品推荐
相关产品推荐

