Copy link to clipboard
Copied
It is a real pain to work with Date-functions in PDFs if you are supposed to use the “dd.mm.yyyy” Syntax (which is common standard in German-Language Countries and afaik in many other countries too, but apparently unknown to Adobe-Developers….) I remember having these problems back in the 1980ies when working with US-programms. And I’m really … that I run into these ancient problems again using Adobe in 2023!!! Sorry for this prologue …
Now. Next problem with date():
I have a field, defined as date “dd.mm.yyyy”:
I want to assign a default-value for this field. The following command returns the date in the wanted format:
Now I thought – just put this as Default Value:
And I guess every other program in this world would gladly accept a default-value in exactly the same format that is specified for this very field – but unlike Acrobat:
Something wrong with ME?
Copy link to clipboard
Copied
You can't use a script as default value.
Use a date like: 01.01.1980
Or set the default value at document open with the script.
Copy link to clipboard
Copied
You can't use a script as default value.
Use a date like: 01.01.1980
Or set the default value at document open with the script.
Copy link to clipboard
Copied
Thank you @Bernd Alheit!
I don't want to set a fixed date. The field should be filled with the current date. But that means you can't use a calculation to set a default value? I can't believe it ... and why doesn't Adobe care to display more precise error message?
Well, guess I have to find another way ... I had the experience, that document scripts sometimes don't work in Reader. So maybe I give the "Actions" a try.
Copy link to clipboard
Copied
You can use a document level script to fill in a new date in that field every time you open a document.
Copy link to clipboard
Copied
I think the error message is very good, in this instance. What you tried to do was simply incorrect. You assumed you could use a script as the default value and that it would be executed, but that's not the case. The default value is a plain string. And there's no reason a doc-level script wouldn't be executed when the file is opened in Reader, assuming JS is enabled.
Also, even if the code was executed, it wouldn't have done anything, because that's not how you apply a value to a field in Acrobat JS. To do so use the following:
this.getField("FieldName").defaultValue = util.printd("mm.dd.yyyy", new Date());
Note that this doesn't mean the value will be shown, though, as the default value and actual values are not the same thing.
Copy link to clipboard
Copied
Thank you @try67!
>I think the error message is very good, in this instance.
Apparantly we have pretty different opinions about the quality of error-messages 😉
>You assumed you could use a script as the default value
Okay, you are right, I should have cheked - but it's like - well ... in 30 years, I never worked with a program, that was not capable of using calculations as default-values ...
>And there's no reason a doc-level script wouldn't be executed when the file is opened in Reader, assuming JS is enabled.
True, we couldn't find no reason so far - yet this problem has occured several times and giving us lots of trouble! Of course we are not sure what causes the problem, since there are lots of issues, but for me it was amazing to find out, that moving the scripts from doc- to field-level solved this issue ...
Copy link to clipboard
Copied
- What kind of better error message you would like to see in this case?
- It is possible, just not the way you did it.
- Please provide an example of a file where this happens.
Copy link to clipboard
Copied
>What kind of better error message you would like to see in this case?
I know that it is (economical) not possible to analyse the input under all aspects. But it would be easy to give an error message, that lists all known possible reasons. Roughly:
There is something wrong, either:
- Format don't match. Please check ...
- You are trying to use a calculation as Default. Only fixed values are allowed.
- ... //other known reasons
- If none of the above reasons fits please report to ....
>It is possible, just not the way you did it.
Okay, got that
>Please provide an example of a file where this happens.
You have had one (https://community.adobe.com/t5/acrobat-discussions/java-script-done-in-pro-works-in-pro-and-ms-edge-...)
But unfortunately you were (afair) the only one, who haven't had problems in Reader DC ...
Copy link to clipboard
Copied
"(which is common standard in German-Language Countries and afaik in many other countries too, but apparently unknown to Adobe-Developers….)"
This is because you're using Acrobat in English language.
I have the same issue with the French date format (dd/mm/yyyy), it's only available when I use Acrobat in French language.
So, I assume that the German date format should be available when using Acrobat in German language.
Copy link to clipboard
Copied
Thank you @JR Boulay !
I'm using the English Version on one and the German on another Computer. When posting on this forum I usually take the Englisch one.
Regarding the Date-Format, It's true, there are diffferences, but even in the German version they offer "tt/mm/yyyy" and "tt-mm-yyyy" which come pretty close, but are still unusual in Germany.
Copy link to clipboard
Copied
Hi,
You can use a date format in German (or another language) whatever the language of the software!
For a German format: event.value=util.printd("date(de){DD.MMMM YYYY}",new Date(),true);
For the same in French: event.value=util.printd("date(fr){DD.MMMM YYYY}",new Date(),true);
...in Spanish: event.value=util.printd("date(es){DD.MMMM YYYY}",new Date(),true);
...in English: event.value=util.printd("date(en){DD.MMMM YYYY}",new Date(),true);
...etc
Below with FrenchAcrobat version, the date in German, English and Spanish.
@+
Copy link to clipboard
Copied
Yeah - but the problem starts when you want to do any calculations with these dates:
Copy link to clipboard
Copied
That wouldn't work with any format. You must convert them first to Date objects (using util.scand) and then you could use them for calculations.
Copy link to clipboard
Copied
In any case everyone should consider this:
😉
Copy link to clipboard
Copied
There's always an XKCD... 🙂
Copy link to clipboard
Copied
...and it's also the easiest format for sorting!
@+
Copy link to clipboard
Copied
no, no, no, that would be to easy 😄
Back in the 1970's, I spent a few months as a foreign student at a US highschool. In science the decimal system was scheduled. We were told that non-metric measurements will be replaced by the year 2000.
Copy link to clipboard
Copied
Well actually there were many good answers. But @Bernd Alheit was the first one to mention the alternative way.
And I'm still reluctant to use document level script. So I ended up with a script in the field-action / On Focus:
if (this.getField("Beginn").value == "") {this.getField("Beginn").value=this.getField("datumheute").value;}
//datumheute is an existing field that already calculates the current date for other purposes too
Thank you all! For the other issues discussed - especially my struggels with converting or calculating dates in JS and the Pro-Reader problem I better start separate tickets.