Adobe Acrobat 动作向导 JavaScript。创建文本字段并使用当前日期更新文本字段?
Adobe Acrobat Action Wizard JavaScript. Create TextFiled and update TextField With current Date?
我正在使用操作向导对批量 PDF 文档执行一些突出显示。我还想在 PDF 文件中添加处理当天的日期戳(操作向导运行日期),我想我已经很接近了。
我可以创建所需的文本字段,但我在通过操作向导中的 JavaScript 代码更新到当前日期的文本字段时遇到问题。为什么这会创建字段,但不会向其中添加日期?
var fld = this.getField("MacroDate");
if ( fld==null ) {
var f = this.addField("info", "text", 0, [11,11, 61,26]);
f.delay = true;
f.alignment = "center";
f.fillColor = color.white;
f.lineWidth = 1;
f.strokeColor = color.black;
f.borderStyle = style.s;
f.textSize = 14;
f.textColor = color.black;
f.textFont = font.Arial;
f.defaultValue = "MacroDate";
f.editable = false;
f.multiline = false;
f.doNotScroll = true;
f.delay = false;
var TodayDate = this.getField("MacroDate");
TodayDate.value = util.printd("mm/dd/yyyy", new date());
}
在做了更多挖掘之后,我确实设法让它工作了:
我不太确定它为什么起作用,但如果有人想解释它,这里是代码:
var AcDate = new Date();
var AcDateFormat = "mm/dd/yyyy"
for (var p = 0; p < this.numPages; p++){
var fd = this.addField("xftDate", "text", 0, [10, 10, 100, 25]);
fd.value = util.printd(AcDateFormat, AcDate);
fd.textSize = 16;
fd.readonly = true;
fd.alignment = "right";
}
flattenPages();
快速浏览一下,问题在最后一行:
TodayDate.value = util.printd("mm/dd/yyyy", new date());
在 JavaScript 中,大写很重要。日期对象是大写的。因此:
TodayDate.value = util.printd("mm/dd/yyyy", new Date()) ;
您还应该激活控制台,如果发生错误,您将在其中收到消息。
您已经有一个变量来表示该字段,因此您可以使用它来设置值。您可以使用以下方法稍微简化一下。
var fld = this.getField("MacroDate");
if ( fld = "undefined" ) {
var f = this.addField("MacroDate", "text", 0, [11,11, (72*1.5)+11,26]);
f.delay = true;
f.alignment = "center";
f.fillColor = color.white;
f.lineWidth = 1;
f.strokeColor = color.black;
f.borderStyle = border.s;
f.textSize = 14;
f.textColor = color.black;
f.textFont = font.Helv;
f.readonly = false;
f.multiline = false;
f.doNotScroll = true;
f.value = util.printd("mm/dd/yyyy", new Date());
f.delay = false;
}
我正在使用操作向导对批量 PDF 文档执行一些突出显示。我还想在 PDF 文件中添加处理当天的日期戳(操作向导运行日期),我想我已经很接近了。
我可以创建所需的文本字段,但我在通过操作向导中的 JavaScript 代码更新到当前日期的文本字段时遇到问题。为什么这会创建字段,但不会向其中添加日期?
var fld = this.getField("MacroDate");
if ( fld==null ) {
var f = this.addField("info", "text", 0, [11,11, 61,26]);
f.delay = true;
f.alignment = "center";
f.fillColor = color.white;
f.lineWidth = 1;
f.strokeColor = color.black;
f.borderStyle = style.s;
f.textSize = 14;
f.textColor = color.black;
f.textFont = font.Arial;
f.defaultValue = "MacroDate";
f.editable = false;
f.multiline = false;
f.doNotScroll = true;
f.delay = false;
var TodayDate = this.getField("MacroDate");
TodayDate.value = util.printd("mm/dd/yyyy", new date());
}
在做了更多挖掘之后,我确实设法让它工作了:
我不太确定它为什么起作用,但如果有人想解释它,这里是代码:
var AcDate = new Date();
var AcDateFormat = "mm/dd/yyyy"
for (var p = 0; p < this.numPages; p++){
var fd = this.addField("xftDate", "text", 0, [10, 10, 100, 25]);
fd.value = util.printd(AcDateFormat, AcDate);
fd.textSize = 16;
fd.readonly = true;
fd.alignment = "right";
}
flattenPages();
快速浏览一下,问题在最后一行:
TodayDate.value = util.printd("mm/dd/yyyy", new date());
在 JavaScript 中,大写很重要。日期对象是大写的。因此:
TodayDate.value = util.printd("mm/dd/yyyy", new Date()) ;
您还应该激活控制台,如果发生错误,您将在其中收到消息。
您已经有一个变量来表示该字段,因此您可以使用它来设置值。您可以使用以下方法稍微简化一下。
var fld = this.getField("MacroDate");
if ( fld = "undefined" ) {
var f = this.addField("MacroDate", "text", 0, [11,11, (72*1.5)+11,26]);
f.delay = true;
f.alignment = "center";
f.fillColor = color.white;
f.lineWidth = 1;
f.strokeColor = color.black;
f.borderStyle = border.s;
f.textSize = 14;
f.textColor = color.black;
f.textFont = font.Helv;
f.readonly = false;
f.multiline = false;
f.doNotScroll = true;
f.value = util.printd("mm/dd/yyyy", new Date());
f.delay = false;
}