Suche // Search:

10.10.2013

Individuelle Masterseiten-Zähler
//
Individual Master Page Counter

Immer wieder fragen Anwender, wie man in einem XFA-Formulare für jede Masterseite einen eigenen Seitenzähler anlegen kann.
Die üblichen Methoden wie xfa.layout.page(this) oder xfa.layout.pageCount() helfen hier nicht weiter.

Die Lösung ist dennoch simpel.
Eine Masterseite hat wie jedes andere Objekt auch eine Indexnummer, beginnend bei 0 für die erste Instanz.
Auf jeder Seite, auf der diese Masterseite erneut auftritt, erhöht sich die Indexnummer um 1.

Platziert man nun ein Feld auf der Masterseite, kann man den Index der Masterseite einfach per Skript im layoutReady-Event fragen.

In FormCalc sieht das dann so aus:
$ = $.parent.index + 1

In JavaScript entsprechend so:
this.rawValue = this.parent.index + 1;


Um nun noch die Gesamtzahl aller Instanzen der Masterseite zu erhalten, zählt man einfach das auftreten der Masterseiten.
Dafür bietet sich die resolveNodes()-Methode an.

In FormCalc:
$ = xfa.resolveNodes(somExpression).length

In JavaScript:
this.rawValue = xfa.resolveNodes(somExpression).length;


Users frequently ask how to create individual page counts for each master page in a XFA form.
The common methods like xfa.layout.page(this) or xfa.layout.pageCount() don't help here.

The solution however is very simple:
As any object a master page has a index number for each occurence, which always begins at 0 for the first instance.
On each page the master page occurs again the index is increased by 1.

If you place a field on your master page you can determine its index easily with a script in the layoutReady Event.

In FormCalc it looks this way:
$ = $.parent.index + 1

In JavaScript that way:
this.rawValue = this.parent.index + 1;


Now you only need to determine how often the master page occurs.
Therefore you can use the resolveNodes() method, as it allows us to count repeatable objects.

In FormCalc:
$ = xfa.resolveNodes(somExpression).length

In JavaScript:
this.rawValue = xfa.resolveNodes(somExpression).length;



Beispiel-Formular
//
Sample form

https://files.acrobat.com/preview/99815d28-441f-47e4-a05b-88e478187157

 

02.10.2013

LiveCycle ES4 Service Pack 1

Das erste Servicepack für LiveCycle ES4 wurde nun veröffentlicht.
Für Designer bringt es genau eine neue Funktion und ein paar Bugfixes.

Das Problem mit dem Dateifilter, das ich vormals beschrieben hatte ist behoben – na endlich!
Ein paar andere Probleme bestehen aber weiterhin.
Versuchen Sie mal ein bestehendes PDF in Designer zu importieren und mit der Zielversion "Acrobat und Adobe Reader 11.0 oder höher" abzuspeichern – Na? Genau, geht nicht!
Des Weiteren funktioniert der Aufruf der Makro-Methode showXDPinAcrobat() nicht.
Designer erzeugt zwar brav die XPD-Datei LiveCycleDesignerScriptMergeTemplate.xdp im Tempverzeichnis C:\Users\%user%\AppData\Local\Temp aber diese wird dann nicht automatisch mit Acrobat geöffnet.
Man muss die Datei also manuell mit Acrobat öffnen.

Neu hinzugekommen ist die Möglichkeit, den Dokumententitel anstelle des Dateinamens in der Kopfzeile des PDF-Viewers anzeigen zu lassen.
Diesen Hinweis findet man aber nur in der englischen Hilfe von Designer.
Dafür muss man das Tag <?originalXFAVersion http://www.xfa.org/schema/xfa-template/3.3/ DisplayDocTitle:1?> in die XML-Quelle einfügen.
Wo das Tag hingehört, darüber schweigt sich die Hilfe übrigens aus, genauso über die erforderliche Zielversion.
Jedenfalls funktioniert es nur, wenn man das Tag innerhalb des <template>-Tags plaziert und das Formular als statische PDF abspeichert.


Service Pack 1 für LiveCycle ES4 is here.
For Designer it means just one new feature and a few bug fixes.

Well, there was a problem with the file filter in the open dialog of the german Designer that is now fixed.
But there are still a few more unfixed bugs.
Have you ever tried to import an existing PDF into Designer an then save it with the target version "Acrobat and Adobe Reader 11. or higher"? Well? You see it's not possible!
There is also a bug with the macro API method showXDPinAcrobat().
Designer is still creating the XDP file named LiveCycleDesignerScriptMergeTemplate.xdp in the users temp folder C:\Users\%user%\AppData\Local\Temp but this file never gets opened automatically with Acrobat.
You have to open it manually.

New is the option to add the document title to the PDF-viewer title bar instead of the file name.
Therefore you have to add the tag <?originalXFAVersion http://www.xfa.org/schema/xfa-template/3.3/ DisplayDocTitle:1?> into the XML source of your form.
There is no word about where it has to be placed exactly and nothing about other neccessary settings like target version.
Anyway, it works but only if you put the tag within the <template> tag and save the form as static PDF.


Download Service Pack 1
https://www.adobe.com/cfusion/entitlement/index.cfm?e=lces4_sp1

Versionshinweise – LiveCycle ES4 Servicepack 1
//
Release Notes – LiveCycle ES4 Service Pack 1
http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/products/livecycle/pdfs/sp_download_readme.pdf