Suche // Search:

20.10.2014

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

Designer bietet ein Werkzeug zum Umwandeln von Word-Dateien in XFA-Formulare — die ConvertWord.exe.
Diese wird automatisch aufgerufen, wenn man mit Designer einer Datei mit folgenden Dateiendungen *.doc, *.docx, *.docm, *.dot oder *.rtf öffnet.

Unter Umständen schlägt die Umwandlung aber immer mit den Umwandlungsfehler: 1 fehl.
Der Rest der Fehlermeldung ist nicht weiter hilfreich, da es sich hier nur eine Zusammenfassung der Konvertierungseinstellungen handelt.

Was also ist hier das Problem?
Nun, in den Dateiimportoptionen gibt es auch eine Dropdown-Liste zum Festlegen ob und wo ein Log der Konvertierung angelegt werden soll.
Das ist die Wurzel allen Übels!
Hat man hier "Protokolldatei erstellen in Designer-Verzeichnis\Log\ConvertWord.log"oder Protokolldatei erstellen in Designer-Verzeichnis\Log\Eingabedatei.log" ausgewählt, hat man das Problem auf ein Verzeichnis zu verweisen, dass nicht existiert.
Standardmäßig existiert im Programmordner von Designer nämlich kein Ordner "Log", daher scheitert der Konvertierungsvorgang.

Konvertierungseinstellungen mit Protokollierung in Designers Programmordner

Umwandlungsfehler: 1
Wenn man nichts protokolliert, oder stattdessen auf das Temp-Verzeichnis verweist, kommt keine Fehlermeldung.



Designer comes with a tool to convert Word files into XFA forms — the ConvertWord.exe.
It's loaded automatically when you open a file with one of the following file extensions: *.doc, *.docx, *.docm, *.dot or *.rtf.

There are situations the conversion fails immediately with Conversion Error:1.
The rest of the message doesn't make cler what's the problem as it only contains a summary of the settings of the conversion.

So, what's the problem.
Well, in the settings dialog there is a drop down list where you set if and where a log file of the conversion will be created.
This is the root of all evil!
When you select either "Log to Designer directory\Log\ConvertWord.log" or "Log to Designer directory\Log\inputfile.log" you'll run into the problem that this points to a directory that does not exist.
By default there is no folder Log in Designers programm folder, so the conversion fails.

Conversion Settings with logging set to Designers programm folder


Conversion Error: 1

If you select the Temp directory for logging or disable it, there is no such error!



Selbermachen-Bugfix – Schritt für Schritt
//
Do-It-Yourself Bugfix – Step by Step


Schritt 1 – Öffnen Sie den Explorer und gehen Sie in das Installationsverzeichnis Ihres Designer z.B. "C:\Program Files (x86)\Adobe\Adobe LiveCycle Designer ES3"
//
Step 1 – Open the Explorer and go to the Designers installation directory like "C:\Program Files (x86)\Adobe\Adobe LiveCycle Designer ES3"


Schritt 2 – Erstellen Sie einen neuen Ordner "Log"
//
Step 2 – Create a new folder named "Log"

Log-Ordner in Designers Programmordner
//
Log folder in Designers programm folder

Schritt 3 – Führen Sie die Dateikonvertierung erneut aus. 
Diese läuft nun durch und erstellt aber keine Log-Datei im neu erstellten Ordner.
Wenn Sie die Logdatei wirklich benötigen, müssen Sie Designer zusätzlich mit Administratorrechten ausführen!
//
Step 3 – Start the file conversion again. 
It now will be processed correctly but it will not create a log file in the newly created folder.
If you really need the log file you will have to run Designer with administrator rights too.


Logdatei der Konvertierung
//
Log file from conversion



15.07.2014

XML per Skript in Adobe Reader importieren
//
Import XML via Script into Adobe Reader

Wenn es im den Import und Export von Daten geht, gibt es im Adobe Reader viele Hürden.
Der Export klappt hier noch relativ einfach über eine E-Mail aber der Import bleibt einen ohne LiveCycle Reader Extensions ersteinmal verwehrt.

Dabei kann man schon seit Version 9.2 externe Dateien mit dem Reader importieren.
Möglich macht das die JavaScript-Methode readFileIntoStream().

Dieses Beispiel zeigt, wie man damit Daten einer XML-Datei in ein XFA-Formular importieren kann – in Adobe Reader natürlich!


When it comes to import and export of data you'll be faced to many barriers, especially in Adobe Reader.
Ok, you can export your data quite easily by sending an email, but the import is a forbidden fruit unless you have LiveCycle Reader Extensions at hand.

Well, since Reader version 9.2 you're already able to import files with Reader.
This is possible through the JavaScript method readFileIntoStream().

This example shows, how you can import data into XFA forms from external XML files – In Adobe Reader of course!

Skript zum Importieren einer XML-Datei
//
Script to import a XML file

var vStream = util.readFileIntoStream();
if (vStream) {
    var vImport, vImportData, vImportXML;
    vImport = util.stringFromStream(vStream)
    .replace(/(\<\?.*\?\>\s*)|(\<!-{2}(.|\n|\r)*-{2}\>)|(\r\n|\r|\n)/g, "");
    vImportData = eval(vImport);
    vImportXML = vImportData.toXMLString();
    xfa.datasets.data.loadXML(vImportXML, false, true);
}

Beispiel Dateien
//
Sample files
https://files.acrobat.com/a/preview/4bbd94e6-c3e9-413a-badc-5154731720a7

01.07.2014

XML-Daten mit XSLT umwandeln
//
Transform XML Data with XSLT

Eine Anfrage eines Kunden hatte mich vor einiger Zeit auf das Thema XSLT (XSL Transformation) gebracht.
Ziel war es Daten in einer Excel-Datei zu pflegen, diese als XML-Datei zu exportieren und diese dann in ein XFA-Formular zu importieren.
XSLT war hier zwingend erforderlich, da Excel nur sehr flache XML-Strukturen unterstützt, die nicht zum Aufbau des XFA-Formulars passen wollten.

Generell bietet sich XSLT immer an wenn importierte/exportierte Daten umstrukturiert werden sollen.
XSLT erlaubt vielfältige Manipulationen, wie z.B. Attribute und Elemente hinzufügen, entfernen oder umbenennen.

Dieses Beispiel soll einmal die Möglichkeiten zeigen, die XSLT bei Verwendung einer Datenbindung mitbringt.


A while ago a customers request brought me to the topic XSLT in XFA forms.
The goal was to fill data in a Excel file, export those data as XML file and import it into a XFA form.
XSLT became neccessary because Excel only allows very plain XML structures that didn't fit the structure of the XFA form.

XSLT is always the first choice if you need to restructure the imported/exported data.
It allows a variety of manipulations as adding, removing or renaming attributes and elements.

In this example I would like to show what you can do with XSLT in a data connection.


1. Als Ausgang dient wieder eine Excel-Datei, in der man Kundendaten pflegt und dann als XML-Datei exportiert.
//
We're starting with an Excel file where we fill some customer data and export those as a XML file.
Excel-Datei mit XML-Zuordnung
//
Excel file with XML mapping

<!-- XML-Struktur aus Excel // XML structure from Excel --> <CustomerList>
    <Customer Firstname="String" Middlename="String" Lastname="String" Sex="String" Birthday="YYYY-MM-DD"/>
    <Info Address="String" ZIP="String" City="String"/>
    </Customer>
    ...
</CustomerList>

2. Das XFA-Formular, in das die Daten dann importiert werden sollen, hat in diesem Fall eine Datenbindung an ein Schema (XSD), das eine andere Struktur als die XML-Datei aufweist.
//
The XFA form has a data connection to a schema (XSD) with a different structure than the XML file we're going to import.

<!-- XML-Struktur in XFA-Formular // XML structure in XFA form -->
<MyCustomers>
  <Customer>
  <General>
   <FirstName>String</FirstName>
   <MiddleName>String</MiddleName>
   <LastName>String</LastName>
   <Gender>String</Gender>
   <BirthDay>YYYY-MM-DD</BirthDay>
  </General>
  <Address>
   <Street>String</Street>
   <ZipCode>String</ZipCode>
   <Town>String</Town>
  </Address>
  <Contact>
   <Phone>String</Phone>
   <Mobile>String</Mobile>
   <Email>String</Email>
  </Contact>
 </Customer>
  ...
</MyCustomers>


3. Damit die eingehenden (importierten) Daten dennoch korrekt zugewiesen werden, wird der Datenverbindung auch ein XSLT-Stylesheet zugewiesen, das die erforderliche Transformierung vornimmt.
Auch die ausgehenden (exportierten) Daten werden umgewandelt, sodass die XML-Datei ebenso eine andere Struktur aufweist.

//
To allow an correct assigment of the incomming (imported) data the data connection additionally uses a XSLT stylesheet to transform the data.
Also the outgoing (exported) data is transformed, so an exported XML file has a different structure too.
Datenverbindung mit XSLT
//
Data Connection with XSLT

<!-- XSLT-Stylesheet -->
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
 <xsl:template match="CustomerList">
  <MyCustomers>
   <xsl:comment>NOTE: XML data was transformed by XSLT during import to conform the embedded XML schema</xsl:comment>
   <xsl:variable name="Customer" select="Customer"/>
   <xsl:for-each select="$Customer">
    <xsl:variable name="Info" select="./Info"/>
    <Customer>
     <General>
      <FirstName>
       <xsl:value-of select="@Firstname"/>
      </FirstName>
      <MiddleName>
       <xsl:value-of select="@Middlename"/>
      </MiddleName>
      <LastName>
       <xsl:value-of select="@Lastname"/>
      </LastName>
      <Gender>
       <xsl:value-of select="@Sex"/>
      </Gender>
      <BirthDay>
       <xsl:value-of select="@Birthday"/>
      </BirthDay>
     </General>
     <Address>
      <Street>
       <xsl:value-of select="$Info/@Address"/>
      </Street>
      <ZipCode>
       <xsl:value-of select="$Info/@ZIP"/>
      </ZipCode>
      <Town>
       <xsl:value-of select="$Info/@City"/>
      </Town>
     </Address>
    </Customer>
   </xsl:for-each>
  </MyCustomers>
 </xsl:template>
</xsl:stylesheet>


Beispiel-Dateien
//
Sample files
https://files.acrobat.com/a/preview/509c0f0c-1a3c-4ce5-8f0e-0378f391ef0a

03.02.2014

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

Neulich stieß ich auch das Problem, da ich im Designer keine Bilder mehr durch Doppelklicken eines Bildfeldes hinzufügen konnte.
Alles was ich zu Gesicht bekam, war die barsche Meldung: "Auf Ihrem System wurde kein Bilddatei-Browser gefunden.".

In den Optionen des Designers offenbarte sich das Problem, denn für die Dateiverwaltung war kein Dateibrowser vorhanden und auch nicht auswählbar.
Ursache ist das Fehlen eines Registrierungseintrages für den Dateibrowser den Designer mitbringt.

Abhilfe schaft hier ein kurzer Ausflug in die Windows Kommandozeile.


I recently got a problem in Designer where I wasn't able to add images by double clicking an image field.
All a got was a gruff message saying "Error: Unable to locate an image file browser on your system".

In Designers options dialog showed the dilemma. There wasn't a default file browser available and also not selectable.
The reason is a missing registry entry for the file browser that comes with Designer.

You can fix this with a short excursion into the Windows command line.


Bug – Fehlender Bilddatei-Browser
//
Bug – Missing image file browser


Fehlermeldung - Fehlender Bilddatei-Browser
//
Error - Missing image file browser
Fehlender Dateibrowser im Optionen-Dialog
//
Missing file browser in the options dialog

Selbermachen-Bugfix – Schritt für Schritt
//
Do-It-Yourself Bugfix – Step by Step


Schritt 1 – Öffnen Sie die Kommandozeile (cmd) mit Administrator-Rechten
//
Step 1 – Open the command line (cmd) with admin rights


Schritt 2 – Wechseln Sie mit "cd" das Installationsverzeichnis Ihres Designer z.B. "cd C:\Program Files (x86)\Adobe\Adobe LiveCycle Designer ES3"
//
Step 2 – Use "cd" to go to the Designers installation directory like "cd C:\Program Files (x86)\Adobe\Adobe LiveCycle Designer ES3"


Schritt 3 – Registrieren Sie den Dateibrowser mit dem Befehl "regsvr32.exe FileSystemBrowser.dll" neu.
//
Step 3 – Register the file browser with the command "regsvr32.exe FileSystemBrowser.dll".
Glückwunsch - Sie haben den Dateibrowser erfolgreich registriert
//
Congratulations - You successfully registered the file browser

Schritt 4 – Starten Sie Designer neu und prüfen Sie, ob der Dateibrowser unter "Extras" > "Optionen" wieder verfügbar ist.
//
Step 4 – Restart Designer and under "Tools" > "Options" check if the file browser is available again.



21.01.2014

Gesperrte PDF-Eigenschaften in XFA-Formularen ändern
//
Edit locked PDF properties in XFA forms

Wie schon zuvor beschrieben, ermöglicht das Service Pack 1 für Designer ES4, den Dokumenttitel anstelle des Dateinamens in der Titelleiste des PDF-Viewer anzeigen zu lassen.
Aber, das funktioniert nur mit statischen Formularen und eben nur wenn man ES4 hat.

Nun ist die Verwendung des Dokumenttitels aber die viel schönere Lösung, schließlich erlaubt er Zeichen, die in Dateinamen gar nicht erlaubt sind und Dateinamen sind nicht selten nichtssagend.
Bei regulären PDF's kann man das schnell mit Acrobat in den Dokumenteigenschaften ändern, aber bei XFA-Formularen ist hier alles ausgegraut.

Die Lösung des Problems liegt dennoch in Acrobat und funktioniert mit allen XFA-Formularen.
Gleich mehr dazu.

Ein positiver Nebeneffekt stellt sich hierbei noch ein, denn es lassen sich auch noch viele andere PDF-Eigenschaften ändern, die XFA-Formularen normalerweise vorenthalten werden.
So können Sie wie bei regulären PDF's die Dokumentbeschreibung ändern, festlegen ob Menüsleisten ausgeblendet werden sollen, wie die Seitenanpassung erfolgen soll oder welcher Seitenbereich gedruckt werden soll.


As I've already described earlier the service pack 1 for Designer ES4 allows you to set up your forms to display the document title instead of the file name in the PDF viewers title bar.
But, this only works for static forms and only if you use ES4.

The use of the document title is the much better solution, as it allows the usage of characters you cannot use in file names and those file names are quite often vacuous.
With regular PDF's you would open its document properties in Acrobat to edit the setting, but not so with XFA forms as everything is grayed out then.

The solution that for is also in Acrobat and it works with all XFA forms.
Of which more later.

It additionally has an excellent side effect which will allow you to change many more PDF properties that are regulary kept away from XFA forms.
You'll be able to edit the document description, set which menu bars to hide, how the intial view has to be or what page range should be printed by default.



Schritt 1 – Öffnen Sie Ihre XFA-Formular in Acrobat und öffnen Sie dessen Eigenschaften mit Strg + D.
//
Step 1 – Open your XFA form in Acrobat and then open its properties by pressing Ctrl + D.
Gesperrte Dokumenteigenschaften in XFA-Formualren
//
Locked PDF Properties in XFA forms


Schritt 2 – Unter dem Reiter Sicherheit ändern Sie das Sicherheitssystem auf Kennwortschutz.
//
Step 2 – Under the Security tab change the Security Method to Password Security.


Schritt 3 – Geben Sie ein Passwort zum Öffnen des Dokuments ein und bestätigen Sie es im folgenden Dialog. Das Passwort muss nicht sicher sein — ein einzelnes Zeichen reicht hier völlig aus.
//
Step 3 – Enter a password to open the document and confirm it in the following dialog. You don't have to enter any strong password — a single character is enough.


Schritt 4 – Klicken Sie nun rechts auf die Schaltfläche Einstellungen ändern.
//
Step 4 – Click on the Change Settings button on the right.
Dokumenteinschränkungen bestehen noch
//
Document Restrictions are still there



Schritt 5 – In diesem Dialog müssen Sie nichts machen, klicken Sie einfach auf OK um ihn zu schließen. Dannach passiert etwas unerwartetes...
//
Step 5 – In this dialog you don't need to do anything, just click OK to close it. After that something unexpected happens...
Hier gibt's nichts zu tun, einfach nur OK klicken
//
Nothing to do here, just click OK

Schritt 6 – ... Acrobat entfernt fasst alle Dokumenteinschräkungen vom Formular. Das ist genau was wir brauchen, also Klicken Sie auf OK, um diese Dokumenteigenschaften zu speichern.
//
Step 6 – ... Acrobat removes most of the Document Restrictions from the form. That's exactly what we need, so click OK to save the current document properties.
Dokumenteinschränkungen wurden ausgehoben
//
Document Restrictions are removed

Schritt 7 – Nun öffnen Sie die Dokumenteigenschaften erneut. Sie sind nun in der Lage Element unter den Reitern Beschreibung, Ansicht bei Öffnen usw. zu ändern. Zum Beispiel können Sie den Dokumententiele anstelle des Dateinames anzeigen lassen oder die Menüleiste beim Öffnen des Formulars ausblenden lassen.
//
Step 7 – Now open the Document Properties again. You're able to edit different elements under the Description, Inital View tabs etc. For example you can select the document title to be displayed instead of the file name or hide the menu bar when the form opens.
Felder der Dokumentbeschreibung veränderbar
//
Fields of Document Description now editable

Ansicht beim Öffnen veränderbar
//
Initial View Settings editable

Schritt 8 – Nachdem Sie alle Eigenschaften geändert haben, setzen Sie das Sicherheitssystem wieder auf keine Sicherheit und speichern das Formular ab.
//
Step 8 – After you applied all changes set the Security Method back to no Security and then save the form.


Beispielformular
https://files.acrobat.com/preview/2b06f176-acaf-4d6a-820b-fc881046b1e5
//
Sample form
https://files.acrobat.com/preview/b7c0ac80-23c2-4747-b37c-4254d7da002c


08.01.2014

Arbeiten mit Prototypen
//
Working with Prototypes

Beim Erstellen von XFA-Formularen muss man immer viel editieren, um ein einheitlichen Look hin zu bekommen.
Ja es ist mühselig all den vielen verschiedenen Feldtypen dieselben Farben und Fonts zuzuweisen, oder dasselbe Skript in mehrere Objekte zu kopieren. Fragmente oder eigene Objekte in der Bibliothek vereinfachen das zwar, haben aber zwei Nachteile. Zum einem ist das nachträgliche Ändern einer Eigenschaft genauso aufwendig, als wenn man jedes Objekt einzeln editiert und dann führen einzeln angepasste Objekte immer zu einer größeren Datei.

Für solche Zwecke bieten sich daher Prototypen an. Hier braucht man nur die Eigenschaften des Prototypen ändern und alle anderen Objekte erben diese Änderungen automatisch. So lassen sich z.B. Schriftarten, Farben, Ränder oder Skripte global anpassen. Ein weiterer Vorteil ist, dass die referenzierenden Objekte kaum Platz in der XML-Struktur benötigen, was die Dateigröße gering hält. Das macht sich vor allem bei Formularen mit hunderten Objekten bezahlt.

Klingt toll oder? Noch nie von gehört, was?! Nun ja, Prototypen existieren eigentlich schon immer in XFA, nur wirklich publik hat Adobe das nie gemacht.
Tatsächlich sind sie eingehend in der XFA Spezifikation beschrieben, aber wer liest schon ein 1.500 Seiten starkes Handbuch so genau durch?

Prinzipiell ist es ganz einfach mit den Prototypen.
Jedem Objekt, egal ob Teilformular, Feld, Border oder Skript, kann man ein id-Attribut (auch bekannt als XML ID) zuweisen, das es innerhalb des Formularentwurfs eindeutig identifiziert. Es wird dadurch zu einen Prototypen.
Ein anderes Objekt kann dann auf dieses id-Attribut referenzieren und erbt so alle Eigenschaften und Kind-Objekte des Prototypen.
Dafür fügt man dem Objekt ein use oder usehref-Attribut hinzu. Das use-Attribut kann dabei nur auf Prototypen innerhalb des Formularentwurfs zugreifen, das usehref-Attribut hingegen auch auf externe Formularentwürfe (*.xdp). Letzteres ist aber nur bei Serverlösungen interessant.

Creating XFA forms means a lot of editing to get a consistent look and feel.
It’s indeed a pain to assign all those different field types the same colors and fonts or to reuse the same script in different objects. Fragments and custom objects in a library already make such things easier but also have two disadvantages. Firstly it’s as complicated to change a property afterwards as when you edit each object separately and secondly the file sizes grows with every single edited object.

For those purposes prototypes are the best solution. There you only need to edit the properties of a prototype and all referencing objects automatically get the changes assigned. So you can edit fonts, colors, border or scripts very easy globally. A benefit of this method is, that the referencing objects need hardly any space in the XML source, which means a smaller file size. This is especially handy in forms with hundres of fields.

Sounds great, right?! Ok, you’ve never heard about before, didn’t you? Well, prototypes exists since ages in XFA, but never have been made such public by Adobe.
You can read about them in the XFA specs, but who’s ever reading a 1.500 pages strong manual completely?

Ok, the usage of prototypes is indeed easy.
Every object – no matter if it’s a subform, field, border or script – can have assigned an id attribute (also known as XML ID), which identifies these object within the template. By this id attribute the object becomes a prototype.
Another object then can reference to this id attribute and will inherit all properties and child objects of the prototype.
Therefore you add an use or usehref attribute to the object. The use attribute can only refer to prototypes within the current template while the usehref attribute can also refer to external templates (*.xdp). The second method is only interesing in server enviroments.


Einen Prototypen erstellen
//
Creating a prototype


Schritt 1 – Erstellen Sie ein neues Formular und platzieren Sie dort ein Textfeld.
//
Step 1 – Create a new form and place a text field somewhere.



Schritt 2 – Editieren Sie das Textfeld – ändern Sie Schriftart, Beschriftung, Hintergrundfarbe usw.
//
Step 2 – Edit the text field – change the font, caption, background color etc.



Schritt 3 – (optional) Ziehen Sie das Textfeld in der Hierarchie in den Ast "referenzierte Objekte".
//
Step 3 – (optional) Drag the text field into "referenced objects" within the hierarchy tree.



Schritt 4 – Wechseln Sie in die XML-Quelle und klicken Sie dann auf das Textfeld in der Hierarchie, damit die Ansicht direkt zu dem Feld springt.
//
Step 4 – Switch to the XML source view and click on the text field in the hierarchy so the focus is set onto the field.



Schritt 5 – Fügen Sie dem <field>-Tag ein id-Element hinzu, z.B. id="protoTextField".
//
Step 5 – Add an id element to the <field>-Tag like id="protoTextField".

<!-- Feld mit XML ID // Field with XML ID -->
<field name="protoTextField1" id="protoTextField" y="6.35mm" x="6.35mm" w="79.375mm" h="44.45mm">
   ...
</field>



Einen Prototypen referenzieren
//
Referencing a prototype

Zum Referenzieren gibt es verschiedene Möglichkeiten.
Dem referenzierenden Objekt fügt man ein use-Attribute hinzu, dass einen Stringwert mit der Referenz zum Prototypen enthält.
Die einfachste ist die Verwendung der XML ID des Prototypen.
Der Stringwert beginnt mit hier mit einer # gefolgt von der XML-ID des Prototypen, also z.B. use="#prototypeId".

Die andere Möglichkeit ist der SOM-Ausdruck des Prototypen, also z.B. use="Form1.#proto[0].protoTextField".
Diese Methode ist nicht so flexibel, wie die mit der XML-ID, da man alle Referenzen manuell ändern muss, wenn sich der SOM-Ausdruck des Prototypen geändert hat.


There are a couple of methods to reference a prototype.
You add a use attribute to the referencing object, that has a string value with the prototypes reference.
The simplest method is the usage of the prototypes XML ID.
Therefore the string begins with a # followed by the XML ID, such as use="#prototypeId".

Another method is a SOM expression of the prototype, like use="Form1.#proto[0].protoTextField".
This one isn't that flexible as the one with the XML ID, because you have to correct each reference manually when the SOM expression of the prototype has changed.

Schritt 1 – Wechseln Sie in die XML-Quelle und platzieren Sie den Textcursor an der Stelle, wo ein neues referenzierendes Feld erstellt werden soll.
//
Step 1 – Switch to XML source view and place the text cursor where you want to add a new referencing field.



Schritt 2 – Geben Sie ein <field>-Tag mit dem use-Attribute in die XML-Quelle ein.
//
Step 2 – Add a <field>-Tag with the use-Attribute into the XML source.

<!-- Feld mit Prototyp-Referenz // Field with prototype reference -->
<field use="#protoTextField/>



Schritt 3 – Öffnen Sie die Design-Ansicht oder PDF-Vorschau, um das Ergebnis zu sehen.
//
Step 3 – Open the the Design view or PDF preview to check the results.




Hinweise
//
Hints

Zum Aktualisieren eines Prototypen stehen Ihnen alle Bedienfelder von Designer zur Verfügung. Nur sehen können Sie den Prototypen nicht, solange er unter "referenzierte Objekte" liegt. Bei kleinen Änderungen stört das nicht weiter, aber bei komplizierten Layouts schon. Dann sollten Sie temporär eine neue Seite erstellen und den Prototypen zum Bearbeiten hierher verschieben.

Die Änderungen an Prototypen sehen Sie nicht sofort bei den referenzierenden Objekten, da Designer das Template nicht neu läd.
Wechsel Sie daher in die XML-Quelle oder PDF-Vorschau oder ändern Sie mit Strg + Mausrad einfach die Zoomstufe, um ein Neuladen zu erzwingen.

Wenn Sie Eigenschaften eines referenzierenden Objekts ändern, werden für dieses Objekt die Änderungen in das Template übernommen und die des Prototypen ignoriert.
So können Sie z.B. die Schriftart des Prototypen übernehmen aber eine andere Schriftgröße und Farbe definieren.

To update prototypes you can use all panels in Designers UI. You only can't see it  as long it's located under "referenced objects". For little changes that isn't a problem, but for complex layouts it is. In those cases you should create a new page for temporary use and drag the prototype here for editing.

You wouldn't see you changes immediately at the referening objects as Designer doesn't reload the template.
To force the template reload you can either switch to the XML Source or PDF Preview or you just change the zoom settings with Ctrl + mousewheel.

If you change any property of an referencing object those changes will be saved in the template and the identical properties of the prototype are ignored.
So you can for example use the font of a prototype while using a separate setting for font size and color.


Beispiel-Formular
//
Sample form
https://files.acrobat.com/preview/6dc8d4f7-b7db-4e1b-af51-74230dc969b1