不显示对话框结果的 Acrobat 动态日期戳



我完全是一个新手,并从在线样本中借用了部分脚本。

我正在处理一个带有对话框提示日期的邮票,如果没有响应,则默认为当前日期。我已经让它显示对话框和默认日期。但是,结果最终不会出现在邮票上。有人可以协助解决问题吗?

if(event.source.forReal && (event.source.stampName == "#2Nw2jMn7S5l9QIPW-WGOHB"))
{
   var rgEmpty = /^s*$/;
   var cDate = null;
   var cDfltDate = null;
   if((event.value != null)  && !rgEmpty.test(event.value) && util.scand("mmm dd yyyy",event.value))
      cDfltDate = event.value;
   else
      cDfltDate = util.printd("mmm dd yyyy",new Date());
   while((cDate==null) || rgEmpty.test(cDate) || (null == util.scand("mmm dd yyyy",cDate)))
   {
       cDate = app.response({cQuestion:"Please Enter the Date",
                             cTitle:"Stamp Date Entry",
                             cDefault:cDfltDate ,
                             cLabel:"Date:"
                           });
       if((cDate==null) || rgEmpty.test(cDate) || (null == util.scand("mmm dd yyyy",cDate)))
       {
          app.alert("Please enter date as "mmm dd yyyy"nnEx: Apr 15 2020",1);
          if(cDate != null)
            cDfltDate = cDate;
       }
   }
}

另外,我想将最终的印章作为模板分发给我的同事,而不是他们创建脚本。我可以共享图章 pdf,并让他们在我的模板上创建一个,而无需修改脚本吗?

谢谢!

首先看一下以下内容; https://acrobatusers.com/tutorials/dynamic_stamp_secrets

1(您应该有一个单独的pdf文件,即图章文件。然后,如果您的同事将图章文件复制到正确的位置,则可以将此文件分发给您的同事,以找出正确的位置,请运行以下代码;

app.getPath ("app", "stamps");
app.getPath ("user", "stamps");

2(此图章文件应包含"字段",这些字段可以通过附加到图章文件的脚本填充,因此您只需要分发包含该脚本的图章文件。

3(在您的脚本中,您没有语句event.value = ...;如果它链接到一个字段,它将用输入的日期或当前日期填充该字段。

希望这是一个帮助。

谢谢!我能够在另一个线程的帮助下解决问题。这是那里的最后一篇文章:

它有效

!!日期是官方的,并且还需要这种特定的格式。因此,我认为只需单击"确定"即可退出,因为它会自动给出默认日期。

最后要测试的是,最终用户可以直接将其复制到 stamps 文件夹中并开始使用它。我将在今天早上有人可用并跟进时进行测试。

感谢您的帮助!

以下是有效的代码:




console.println("Stamping:" + event.source.StampName);
if(event.source.forReal && (event.source.stampName == "#StampTemplate"))
{
var rgEmpty = /^s*$/;
var cDate = null;
var cDfltDate = null;
if((event.value != null)  && !rgEmpty.test(event.value) && util.scand("mmm dd yyyy",event.value))
cDfltDate = event.value;
else
cDfltDate = util.printd("mmm dd yyyy",new Date());
while((cDate==null) || rgEmpty.test(cDate) || (null == util.scand("mmm dd yyyy",cDate)))
{
cDate = app.response({cQuestion:"Please enter date as "mmm dd yyyy"nnFor Example: Apr 15 2020",
cTitle:"Stamp Date Entry",
cDefault:cDfltDate ,
cLabel:"Date:"
});
if((cDate==null) || rgEmpty.test(cDate) || (null == util.scand("mmm dd yyyy",cDate)))
{
app.alert("Please enter date as "mmm dd yyyy"nnFor Example: Apr 15 2020",1)
}
else
event.value = cDate;
}
}


最新更新