Adobe Acrobat 动作向导和 Javascript
Adobe Acrobat Action Wizard and Javascript
我正在使用 Adobe Acrobat Pro DC 中的动作向导工具。我想使用 "execute Javascript" 将水印应用到 PDF 页面的中心,并将人名应用到两侧和顶部。我成功地做到了这一点,这是代码。
var cMyText = "This PDF has been created for exclusive use for Max Power.";
this.addWatermarkFromText({
cText: cMyText,
nFontSize:9,
nHorizAlign:app.constants.align.center,
nVertAlign:app.constants.align.top,
nVertValue:-10,
nOpacity: 0.8,
});
this.addWatermarkFromText({
cText: cMyText,
nFontSize: 9,
nRotation: 90,
nHorizAlign: app.constants.align.left,
nHorizValue: 10,
nVertAlign: app.constants.align.center,
nOpacity: 0.8,
});
this.addWatermarkFromText({
cText: cMyText,
nFontSize:9,
nRotation:-90,
nHorizAlign:app.constants.align.right,
nHorizValue:-10,
nVertAlign:app.constants.align.center,
nOpacity: 0.8,
});
this.addWatermarkFromText({
cText: "DRAFT COPY",
nTextAlign:app.constants.align.center,
cFont: "Helvetica-Bold",
nFontSize:80,
aColor: ["RGB", 0, 0, 1],
nRotation:45,
nOpacity: 0.2,
});
现在,这是我的问题。该行...
"This PDF has been created for exclusive use for Max Power.";
每次我运行的动作都会改变。我不想冒着让用户直接在代码中编辑它来弄乱 JavaScript 的风险。我想要一个输入框,提示用户在执行操作之前编辑此行。这可能吗?请帮忙!谢谢
查看 reference 中的 app.reponse()
。
按照这些思路应该可以解决问题:
var name = app.alert("Please enter name below:");
if (name != null) {
var cMyText = "This PDF has been created for exclusive use for " + user + ".";
...
或者,您可以在每个用户的机器上放置文件夹级别 Javascript 文件,并使用 getUser()
函数返回他们的名称。根据网络环境的不同,这可能是也可能不是一个选项,但它将启用文档级脚本来确定用户是谁。
谢谢!下面的代码成功了!
var dialogTitle = "Please Complete";
var string1 = "This PDF has been created for exclusive use for";
var defaultAnswer = "";
var string2 = app.response("Add PDF recipients NAME or COMPANY",
dialogTitle, defaultAnswer);
var string3 = app.response("Add PDF recipients ADDRESS",
dialogTitle, defaultAnswer);
var cMyText = string1 +"\n"+ string2 +" "+ string3;
var string4 = string2 +"\n"+ string3;
this.addWatermarkFromText({
cText: cMyText,
nFontSize:9,
nHorizAlign:app.constants.align.center,
nVertAlign:app.constants.align.top,
nVertValue:-10,
nOpacity: 0.8,
});
this.addWatermarkFromText({
cText: cMyText,
nFontSize:9,
nRotation:90,
nHorizAlign:app.constants.align.left,
nHorizValue:10,
nVertAlign:app.constants.align.center,
nOpacity: 0.8,
});
this.addWatermarkFromText({
cText: cMyText,
nFontSize:9,
nRotation:-90,
nHorizAlign:app.constants.align.right,
nHorizValue:-10,
nVertAlign:app.constants.align.center,
nOpacity: 0.8,
});
this.addWatermarkFromText({
cText: string4,
nTextAlign:app.constants.align.center,
cFont: "Helvetica-Bold",
nFontSize:36,
aColor: ["RGB", 0, 0, 1],
nRotation:45,
nOpacity: 0.2,
bOnTop:false,
});
我正在使用 Adobe Acrobat Pro DC 中的动作向导工具。我想使用 "execute Javascript" 将水印应用到 PDF 页面的中心,并将人名应用到两侧和顶部。我成功地做到了这一点,这是代码。
var cMyText = "This PDF has been created for exclusive use for Max Power.";
this.addWatermarkFromText({
cText: cMyText,
nFontSize:9,
nHorizAlign:app.constants.align.center,
nVertAlign:app.constants.align.top,
nVertValue:-10,
nOpacity: 0.8,
});
this.addWatermarkFromText({
cText: cMyText,
nFontSize: 9,
nRotation: 90,
nHorizAlign: app.constants.align.left,
nHorizValue: 10,
nVertAlign: app.constants.align.center,
nOpacity: 0.8,
});
this.addWatermarkFromText({
cText: cMyText,
nFontSize:9,
nRotation:-90,
nHorizAlign:app.constants.align.right,
nHorizValue:-10,
nVertAlign:app.constants.align.center,
nOpacity: 0.8,
});
this.addWatermarkFromText({
cText: "DRAFT COPY",
nTextAlign:app.constants.align.center,
cFont: "Helvetica-Bold",
nFontSize:80,
aColor: ["RGB", 0, 0, 1],
nRotation:45,
nOpacity: 0.2,
});
现在,这是我的问题。该行...
"This PDF has been created for exclusive use for Max Power.";
每次我运行的动作都会改变。我不想冒着让用户直接在代码中编辑它来弄乱 JavaScript 的风险。我想要一个输入框,提示用户在执行操作之前编辑此行。这可能吗?请帮忙!谢谢
查看 reference 中的 app.reponse()
。
按照这些思路应该可以解决问题:
var name = app.alert("Please enter name below:");
if (name != null) {
var cMyText = "This PDF has been created for exclusive use for " + user + ".";
...
或者,您可以在每个用户的机器上放置文件夹级别 Javascript 文件,并使用 getUser()
函数返回他们的名称。根据网络环境的不同,这可能是也可能不是一个选项,但它将启用文档级脚本来确定用户是谁。
谢谢!下面的代码成功了!
var dialogTitle = "Please Complete";
var string1 = "This PDF has been created for exclusive use for";
var defaultAnswer = "";
var string2 = app.response("Add PDF recipients NAME or COMPANY",
dialogTitle, defaultAnswer);
var string3 = app.response("Add PDF recipients ADDRESS",
dialogTitle, defaultAnswer);
var cMyText = string1 +"\n"+ string2 +" "+ string3;
var string4 = string2 +"\n"+ string3;
this.addWatermarkFromText({
cText: cMyText,
nFontSize:9,
nHorizAlign:app.constants.align.center,
nVertAlign:app.constants.align.top,
nVertValue:-10,
nOpacity: 0.8,
});
this.addWatermarkFromText({
cText: cMyText,
nFontSize:9,
nRotation:90,
nHorizAlign:app.constants.align.left,
nHorizValue:10,
nVertAlign:app.constants.align.center,
nOpacity: 0.8,
});
this.addWatermarkFromText({
cText: cMyText,
nFontSize:9,
nRotation:-90,
nHorizAlign:app.constants.align.right,
nHorizValue:-10,
nVertAlign:app.constants.align.center,
nOpacity: 0.8,
});
this.addWatermarkFromText({
cText: string4,
nTextAlign:app.constants.align.center,
cFont: "Helvetica-Bold",
nFontSize:36,
aColor: ["RGB", 0, 0, 1],
nRotation:45,
nOpacity: 0.2,
bOnTop:false,
});