我是acrobat中这个脚本代码的新手。我想创建一个动态图章,用户输入各种数据,例如公司名称/帐号/经过/日期批准(生成今日日期)/支付账单(可以说是“已批准,不适用”)
从网上搜索我发现了一些代码,我想出了这个: 但到目前为止,我没有运气。我做错了什么。
var dialog = {
companyValue: "",
accountValue: "",
approvedValue: "",
payValue: "",
commit:function (dialog) { // called when OK pressed
var results = dialog.store();
this.companyValue = results["txt1"];
this.accountValue = results["txt2"];
this.approvedValue = results["txt3"];
this.payValue = results["txt4"];
},
description:
{
name: "Exhibit Information", // Dialog box title
elements:
[
{
type: "view",
elements:
[
{
name: "Company name: ",
type: "static_text",
},
{
item_id: "txt1",
type: "edit_text",
multiline: true,
width: 300,
height: 30
},
{
name: "Account Number: ",
type: "static_text",
},
{
item_id: "txt2",
type: "edit_text",
multiline: true,
width: 300,
height: 30
},
{
name: "Approved By: ",
type: "static_text",
},
{
item_id: "txt3",
type: "edit_text",
multiline: true,
width: 300,
height: 30
},
{
name: "Pay Bill: ",
type: "static_text",
},
{
item_id: "txt4",
type: "edit_text",
multiline: true,
width: 300,
height: 30
},
{
type: "ok_cancel",
ok_name: "Ok",
cancel_name: "Cancel"
},
]
},
]
}
};
if(event.source.forReal && (event.source.stampName == "#caseandnumblue"))
{
if ("ok" == app.execDialog(dialog))
{
var cMsg = dialog.companyValue;
event.value = "Company\n" + cMsg;
event.source.source.info.company = cMsg;
cMsg = "Account\n" + dialog.accountValue;
this.getField("AccountNumField").value = cMsg;
cMsg = "Approved\n" + dialog.approvedValue;
this.getField("ApproveByField").value = cMsg;
cMsg = "Pay\n" + dialog.payValue;
this.getField("PayBillField").value = cMsg;
}
}
答案 0 :(得分:1)
它可能与你的stampName值(“#caseandnumblue”)有关。这应该是Acrobat在您创建图章时分配的字母和数字的随机组合,而不是您给出图章的标签。您可以通过在Javascript调试器中键入以下内容来获取该值:
this.selectedAnnots[0].AP
(按CTRL-Enter键获取要在Acrobat的Javascript调试器中执行的代码....那部分让我失望了。)
感谢您在此发布此内容 - 在我尝试放置自己的作品时,它帮了很多忙。我发现this Acrobat Users tutorial以及Adobe's JavaScript API Reference for the Dialog object有助于弄清楚如何在Acrobat中构建动态图章对话框。