Acrobat Dynami c Штамп даты с диалоговым окном, результаты не отображаются - PullRequest
1 голос
/ 28 мая 2020

Я полностью новичок в этом и позаимствовал часть сценария из образца в Интернете.

Я работаю над штампом с диалоговым окном, запрашивающим дату, и по умолчанию использую текущую дату, если нет ответ. Я получил его, чтобы отобразить диалоговое окно и дату по умолчанию. Но результаты не попадают на печать. Не мог бы кто-нибудь помочь в решении проблем?

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\"\n\nEx: Apr 15 2020",1);
          if(cDate != null)
            cDfltDate = cDate;
       }
   }
}

Кроме того, я хотел бы распространить заключительную печать среди моих коллег в качестве шаблона, а не создавать сценарий. Могу ли я поделиться штампом pdf и попросить их создать его по моему шаблону без необходимости изменения скрипта?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 30 мая 2020

Спасибо! Мне удалось решить проблему с помощью в другом потоке. Вот последний пост там:

ЭТО РАБОТАЕТ !!!

Дата требуется, чтобы быть официальной, и этот специальный формат c также требуется. Итак, я думаю, что достаточно просто щелкнуть OK, потому что он автоматически дает дату по умолчанию.

Последнее, что нужно проверить, это то, что конечный пользователь может просто скопировать его прямо в папку штампов и начать использовать. Я протестирую это сегодня утром, когда кто-нибудь появится, и свяжусь с вами.

Спасибо за вашу помощь!

Вот код, который сработал:






        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\"\n\nFor 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\"\n\nFor Example: Apr 15 2020",1)
               }
               else
                  event.value = cDate;
               }
        }




0 голосов
/ 29 мая 2020

Сначала взгляните на следующее; https://acrobatusers.com/tutorials/dynamic_stamp_secrets

1) У вас должен быть отдельный файл pdf, то есть файл штампа. Затем этот файл можно передать вашим коллегам, если они скопируют файл штампа в правильное место, чтобы узнать правильное расположение, выполните следующий код;

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

2) Этот файл штампа должны содержать «поля», эти поля могут быть заполнены сценарием, прикрепленным к файлу штампа, поэтому вам нужно только распространить файл штампа, который включает сценарий.

3) В вашем сценарии у вас нет оператора event.value = ...;, если он связан с полем, он заполнит поле введенной датой или текущей датой.

Надеюсь, это поможет.

...