Suche // Search:

25.10.2011

Der Selbermachen-Bugfix
//
Do-It-Yourself bugfix

Heute mal was ganz aus der Reihe.
Seit Ewigkeiten schon nervt mich diese Meldung in der JavaScript-Konsole bei jedem Öffnen meiner Formulare in Acrobat / Reader, die ich mit Designer erstellt habe:

missing ; before statement
8:Document-Level:!ADBE::0100_VersChkStrings

Auch der neue ADEP Designer verursacht dieses Problem ... arrg.

Eine Recherche mit dem PDFStreamDumper brachte mich recht schnell auf die Ursache.
Designer bettet beim Speichern als PDF-Datei immer einige Dokument-Level-Skripte in JavaScript mit ein, die beim Öffnen der Formulare ausgeführt werden.
Ist zum Beispiel die Zielversion des Formulars höher als die des PDF-Viewers, soll eine entsprechende Meldung aufploppen, um den Benutzer zu informieren.
Das klappt wunderbar, nur nicht mit dem deutschen Designer, da dort einige Strings in dem JavaScript-Skripten falsch geschrieben sind und dadurch beim Öffnen des Formulars scheitern.
Wenn Sie die englische Version des Designer haben, kennen Sie das Problem zum Glück nicht.

Nun kann man theoretisch mit dem PDFStreamDumper den Fehler in den Formularen ausmerzen, aber besser wäre es doch, wenn das Problem gar nicht mehr vorhanden wäre.
Nach langer, langer Suche habe ich die Quelle allen Übels dafür ausgemacht, die Resources.dll im Ordner DE innerhalb des Designer-Programmordners.
Diese DLL können Sie mit dem Freeware-Tool ResHacker öffnen und dann entsprechend selbst reparieren.



Today something totally off-topic.
For eterneties I get bugged by the following exception in the JavaScript console when opening my forms in Acrobat / Reader that I created with Designer:

missing ; before statement
8:Document-Level:!ADBE::0100_VersChkStrings

The new ADEP Designer produces this problem too .... arrg.

An investigation with the PDFStreamDumper showed me the reason for this.
Designer embeds a few document level scripts in JavaScripts into the forms when saving as PDF.
Those scripts will be executed by the PDF-Viewer when opening the forms.
An example: Is the target version of the form higher than the version of the PDF viewer an appropriate message is displayed.
This works like a charm, excepting in the german Designer, because those JavaScripts contain a few faulty strings and fail.
If you use the englisch Designer, you don't have that problem. Lucky you!

Ok, you theoretically can fix that in the forms using the PDFStreamDumper but it will be much better if the problem won't occur anymore.
After a long, very long search I found the root of all evil in the Resources.dll in the folder DE under Designer's program folder.
You can fix this DLL by yourself using the freeware tool ResHacker.

Ausnahme in JavaScript-Konsole bei Formularen erstellt mit deutschem Designer
//
Exception in JavaScript console with forms created with german Designer


Die Wurzel allen Übels – Fehlerhafte Version Check Strings
//
The root of all evil – Faulty Version Check Strings



Der Selbermachen-Bugfix Schritt für Schritt (Auf Ihre eigene Gefahr hin!!!)
//
The Do-It-Yourself Bugfix step by step (At your own risk!!!)

1. Öffnen Sie die Resources.dll mit ResHacker und suchen sie die Strings mit der ID 12626 und 12627 innerhalb der String Table.
//
Open the Resources.dll in ResHacker and look for the two strings with the ID 12626 and 12627 within the string table.



2. Suchen Sie in beiden Strings die Zeichenfolge \"OK\" ...
//
Look for the character sequence \"OK\" with the srings ...



3. ... und entfernen sie die escapten Anführungszeichen \" vor und hinter dem OK und bestätigen Sie mit "Compile Script".
// 
... and replace the escaped quotes \" before und after the OK and confirm the changes with "Compile Scripts".



4. Speichern Sie die Datei.
//
Save the file.



5. Ersetzen Sie die alte Resources.dll unter z.B. C:\Program Files (x86)\Adobe Digital Enterprise Platform\Designer 10.0\DE mit Ihrer neuen und starten Sie Designer neu.
//
Replace the old Resources.dll under i.e. C:\Program Files (x86)\Adobe Digital Enterprise Platform\Designer 10.0\DE with your new one and restart Designer.

17.10.2011

Flexible Datumseingabe durch Datumsmuster
//
Flexible input of dates with date patterns

Ok, Datumsfelder sind ja sehr geläufig in Formularen, aber so richtig bequem sind sie manchmal nicht. Gerade wenn man das Datum in einem ganz bestimmten Format benötigt, scheitert es meistens an den Eigenheiten des Benutzers, wie er das Datum eingibt.
Klar, man kann ein Validierungsmuster definieren, wodurch der Benutzer informiert wird, wenn das eingegebene Datum nicht dem richtigen Format entspricht.
Wollen Sie, dass der Benutzer das Datum nur in diesem Format 17.10.2011 eingibt, verwenden Sie als Validierungsmuster date{DD.MM.YYYY}.
Entspricht die Eingabe nicht dem Muster, kommt eine Fehlermeldung.
Aber spätestens beim 3. Validierungsfehler hat der Benutzer dann auch keine Lust mehr.

Sie können das Problem für beide Seiten elegant lösen indem Sie auch Muster für das Bearbeiten und Anzeigen definieren.

So ein Muster beschreibt einfach, wie der Wert formatiert sein oder werden muss.
Durch die Möglichkeit mehrere Muster auch miteinander zu kombinieren, können Sie so vielfältige Eingaben erlauben und dennoch immer ein Datum nach einem festen Muster angezeigt bekommen.

Die Kombination aus diesen Bearbeitungsmustern date{DD.MM.YYYY}| date{DD:MM:YYYY}| date{DDMMYYYY}| date{DD MM YYYY}| date{DD-MM-YYYY}| date{DD,MM,YYYY}| date{DD/MM/YYYY}| date{DD.MM.YY}| date{DD:MM:YY}| date{DDMMYY}| date{DD MM YY}| date{DD-MM-YY}| date{DD,MM,YY}| date{DD/MM/YY} lässt verschiedenste Eingabeformate zu.

So kann der Benutzer das Datum als 17.10.2011, 17:10:2011, 17102011, 17 10 2011, 17-10-2011 usw. eingeben.
Über das Anzeigemuster date{DD.MM.YYYY} werden diese allesamt wieder in das Format 17.10.2011 umgewandelt, wodurch dann auch die Validierung erfolgreich ist.


Ok, date fields are very popular in forms, but sometimes not that comfortable as expected.
Especially when you need the date to be formatted in a specific way, it often fails with the way the user enters the date.
Sure, you can use a validation pattern to inform the users when the input is not correct.
If you want the user to enter dates like 10/17/2011 use the validation pattern date{MM/DD/YYYY}.
Does the entered date not match the pattern an error message is displayed.
But at least after the third failed attempt to enter the date correctly the user gets upset.

You can avoid such pitfalls when you use patterns for editing and displaying too.

With a pattern you simply describe, how a value has to be or will be formatted.
With the opportunity to combine several patterns you offer the user manifold ways for entering dates but also get the dates displayed in the one desired format.

The combination of these edit patterns date{MM.DD.YYYY}| date{MM:DD:YYYY}| date{MMDDYYYY}| date{MM DD YYYY}| date{MM-DD-YYYY}| date{MM,DD,YYYY}| date{MM/DD/YYYY}| date{MM.DD.YY}| date{MM:DD:YY}| date{MMDDYY}|date{MM DD YY}| date{MM-DD-YY}| date{MM,DD,YY}| date{MM/DD/YY} allows manifold way of entering.

So the user is allowed to enter the date 10/17/2011 as 10.17.2011, 10:17:2011, 10172011, 10 17 2011, 10-17-2011 and so on.
Through the display pattern date{MM/DD/YYYY} all those inputs will be formatted into 10/17/2011 which why the validation then is successful too.


Muster für Datumsfeld festlegen
//
Define patterns for date field
Anzeigemuster // Display pattern

Kombinierte Bearbeitungsmuster // Combined edit patterns


Validierungsmuster // Validation pattern

Beispielformular
//
Sample form

https://files.acrobat.com/preview/62ba90f1-c6df-4e8b-89b3-263d61f6aa88

10.10.2011

MAX 2011 Tagung – ADEP Designer
//
MAX 2011 Session – ADEP Designer

Adobe MAX 2011 ist vorbei und ich konnte nicht dabei sein.
Schade, aber auch nicht so schlimm denn Niall O'Donovan war dort und hat uns nochmal die spannensten Neuerungen in ADEP Designer zusammen gefasst.
Absolut lesenswert und reich an nützlichen Beispielen.


Adobe MAX 2011 is over and I couldn't be there.
Pity, but not so bad as  Niall O'Donovan has been there and condensed the most exiting innovations in ADEP Designer for us.
Absolutely worth reading and full of useful samples.


Adobe MAX Tagungsvideo – ADEP Designer
//
Adobe MAX Session Video – ADEP Designer