我正在使用操作向导对批量PDF文档执行一些突出显示。我还想在PDF文件的处理当天添加一个DATE STAMP(日期动作向导运行),我想我非常接近。
我可以创建所需的文本字段,但是我通过操作向导中的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();
答案 0 :(得分:1)
只需快速浏览一下,问题就在最后一行:
TodayDate.value = util.printd("mm/dd/yyyy", new date());
在JavaScript中,资本化很重要。并且Date对象是大写的。因此:
TodayDate.value = util.printd("mm/dd/yyyy", new Date()) ;
您还应该激活控制台,如果发生错误,您将收到消息。
答案 1 :(得分:1)
您已经有一个变量来表示该字段,因此您可以使用它来设置该值。您可以使用以下内容简化它。
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;
}