AEM 6.4 hat das Ende der erweiterten Unterstützung erreicht und diese Dokumentation wird nicht mehr aktualisiert. Weitere Informationen finden Sie in unserer technische Unterstützung. Unterstützte Versionen suchen here.
Sie können die Bereitstellung von PDF-Inhalten optimieren und die Fähigkeit des Forms-Services die Netzwerklast zu bewältigen, verbessern, indem Sie die Client-seitige Rendering-Funktion von Acrobat oder Adobe Reader verwenden. Dieser Prozess wird als Rendering eines Formulars auf dem Client bezeichnet. Um ein Formular auf dem Client zu rendern, muss der Client (normalerweise ein Webbrowser) Acrobat 7.0 oder Adobe Reader 7.0 oder höher verwenden.
Änderungen an einem Formular, die aus der serverseitigen Skriptausführung resultieren, werden in ein Formular, das auf dem Client gerendert wird, nicht aufgenommen, es sei denn, das Stammteilformular enthält das restoreState
-Attribut, das auf auto
definiert ist. Weitere Informationen zu diesem Attribut finden Sie unter Forms Designer.
Weitere Informationen zum Forms-Service finden Sie in der Service-Referenz für AEM Forms.
Führen Sie die folgenden Schritte durch, um ein Formular auf dem Client zu rendern:
Einschließen von Projektdateien
Schließen Sie die erforderlichen Dateien in Ihr Entwicklungsprojekt ein. Wenn Sie ein Client-Programm mit Java erstellen, schließen Sie die erforderlichen JAR-Dateien ein. Wenn Sie Webdienste verwenden, stellen Sie sicher, dass Sie die Proxy-Dateien einschließen.
Erstellen eines Forms-Client-API-Objekts
Bevor Sie einen Client-API-Vorgang für den Forms-Service programmgesteuert durchführen können, müssen Sie einen Client für den Forms-Service erstellen. Wenn Sie die Java-API verwenden, erstellen Sie ein FormsServiceClient
-Objekt. Wenn Sie die Forms-Web-Service-API verwenden, müssen Sie ein FormsService
-Objekt erstellen.
Einstellen der Laufzeitoptionen beim Client für das Rendering
Sie müssen die Laufzeitoption zum Rendern eines Formulars auf dem Client aktivieren, indem Sie die RenderAtClient
-Laufzeitoption auf true
einstellen. Dadurch wird das Formular an den Client übertragen, auf dem es dann gerendert wird. Wenn RenderAtClient
auto
beträgt (Standardwert), kann anhand des Formulardesigns bestimmt werden, ob das Formular auf dem Client gerendert werden soll. Bei dem Formulardesign muss beachtet werden, dass dieses ein flexibles Layout haben muss.
Optional können Sie die Laufzeitoption SeedPDF
aktivieren. Die SeedPDF
-Option kombiniert den PDF-Container (Seed-PDF-Dokument) mit dem Formulardesign und den XML-Daten. Sowohl das Formulardesign als auch die XML-Daten werden an Acrobat oder Adobe Reader übermittelt, die das Formular rendern. Die SeedPDF
-Option kann verwendet werden, wenn der Client nicht über die Schriftarten verfügt, die im Formular verwendet werden, z. B. wenn ein Endbenutzer nicht über die Lizenzen für die Verwendung einer bestimmten Schriftart verfügt, die der Formularinhaber verwenden darf.
Sie können Designer verwenden, um eine einfache dynamische PDF-Datei zur Verwendung als Seed-PDF-Datei zu erstellen. Die folgenden Schritte sind erforderlich, um dieses zu erreichen:
Sie müssen die Laufzeitoption Seed-PDF nicht definieren, um ein Formular auf dem Client zu rendern. Wenn Sie keine Seed-PDF angeben, erstellt der Forms-Service ein Shell-PDF-Dokument, das keine COS-Objekte enthält, jedoch einen PDF-Wrapper, in dem der eigentliche XDP-Inhalt eingebettet ist. In den in diesem Abschnitt aufgeführten Schritten wird die Laufzeitoption Seed-PDF nicht aktiviert. Informationen zu COS-Objekten finden Sie im Adobe PDF-Referenzhandbuch.
Rendern eines Formulars auf dem Client
Um ein Formular auf dem Client zu rendern, müssen Sie sicherstellen, dass die Laufzeitoptionen für das Rendern auf dem Client in Ihrer Anwendungslogik für das Rendern des Formulars enthalten sind.
Senden des Formular-Datenstreams an den Client-Webbrowser
Der Forms-Service erstellt einen Formular-Datenstream, den Sie an den Client-Webbrowser senden müssen. Nachdem das Formular an den Client-Webbrowser gesendet wurde, wird es von Acrobat 7.0 oder Adobe Reader 7.0 oder höher gerendert und den Benutzern angezeigt.
Siehe auch
Rendern eines Formulars auf dem Client mithilfe der Java-API
Rendern eines Formulars auf dem Client mithilfe der Webservice-API
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Schnellstart mit der Forms Service-API
Übergeben von Dokumenten an den Forms-Service
Erstellen von Web-Programmen, die Formulare wiedergeben
So rendern Sie ein Formular auf dem Client mithilfe der Forms API (Java):
Projektdateien einschließen
Fügen Sie Client-JAR-Dateien wie „adobe-forms-client.jar“ in den Klassenpfad Ihres Java-Projekts ein.
Erstellen eines Forms Client-API-Objekts
ServiceClientFactory
-Objekt, das Verbindungseigenschaften enthält.FormsServiceClient
-Objekt, indem Sie seinen Konstruktor verwenden und das ServiceClientFactory
-Objekt übergeben.Festlegen von Laufzeitoptionen für das Client-Rendering
PDFFormRenderSpec
, indem Sie den Konstruktor verwenden.RenderAtClient
fest, indem Sie die Methode setRenderAtClient
des PDFFormRenderSpec
-Objekts aufrufen und den Aufzählungswert RenderAtClient.Yes
übergeben.Rendern eines Formulars auf dem Client
Rufen Sie die Methode renderPDFForm
des FormsServiceClient
-Objekts auf und übergeben Sie die folgenden Werte:
Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
.com.adobe.idp.Document
-Objekt, das Daten enthält, die mit dem Formular zusammengeführt werden sollen. Wenn Sie keine Daten zusammenführen möchten, übergeben Sie ein leeres com.adobe.idp.Document
-Objekt.PDFFormRenderSpec
-Objekt, das Laufzeitoptionen speichert, die zum Rendern eines Formulars auf dem Client erforderlich sind.URLSpec
-Objekt, das URI-Werte enthält, die der Forms-Service zum Rendern eines Formulars benötigt.java.util.HashMap
-Objekt, das Dateianlagen speichert. Dies ist ein optionaler Parameter, für den Sie null
angeben können, wenn Sie keine Dateien an das Formular anhängen möchten.Die Methode renderPDFForm
gibt ein FormsResult
-Objekt zurück, das einen Formulardaten-Stream enthält, der in den Client-Webbrowser geschrieben werden muss.
Schreiben des Formulardaten-Streams in den Client-Webbrowser
com.adobe.idp.Document
-Objekt, indem Sie die Methode getOutputContent
des FormsResult
-Objekts aufrufen.com.adobe.idp.Document
-Objekts, indem Sie seine Methode getContentType
aufrufen.javax.servlet.http.HttpServletResponse
-Objekts fest, indem Sie seine Methode setContentType
aufrufen und den Content-Typ des com.adobe.idp.Document
-Objekts übergeben.javax.servlet.ServletOutputStream
-Objekt, das zum Schreiben des Formulardaten-Streams in den Client-Webbrowser verwendet wird, indem Sie die Methode getOutputStream
des javax.servlet.http.HttpServletResponse
-Objekts aufrufen.java.io.InputStream
-Objekt, indem Sie die Methode getInputStream
des com.adobe.idp.Document
-Objekts aufrufen.read
des InputStream
-Objekts aufrufen und das Byte-Array als Argument übergeben.write
des javax.servlet.ServletOutputStream
-Objekts auf, um den Formulardaten-Stream an den Client-Webbrowser zu senden. Übergeben Sie das Byte-Array an die Methode write
.Siehe auch
Kurzanleitung (SOAP-Modus): Rendern eines Formulars auf dem Client mithilfe der Java-API
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Rendern eines Formulars auf dem Client mithilfe der Forms-API (Webservice):
Projektdateien einschließen
Erstellen eines Forms Client-API-Objekts
Erstellen Sie ein FormsService
-Objekt und legen Sie Authentifizierungswerte fest.
Festlegen von Laufzeitoptionen für das Client-Rendering
PDFFormRenderSpec
, indem Sie den Konstruktor verwenden.RenderAtClient
fest, indem Sie die Methode setRenderAtClient
des PDFFormRenderSpec
-Objekts aufrufen und den Zeichenfolgenwert RenderAtClient.Yes
übergeben.Rendern eines Formulars auf dem Client
Rufen Sie die Methode renderPDFForm
des FormsService
-Objekts auf und übergeben Sie die folgenden Werte:
Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
.BLOB
-Objekt, das Daten enthält, die mit dem Formular zusammengeführt werden sollen. Wenn Sie keine Daten zusammenführen möchten, übergeben Sie null
. (Siehe Vorausfüllen von Formularen mit flexiblen Layouts.)PDFFormRenderSpec
-Objekt, das Laufzeitoptionen speichert, die zum Rendern eines Formulars auf dem Client erforderlich sind.URLSpec
-Objekt, das URI-Werte enthält, die für den Forms-Service erforderlich sind.java.util.HashMap
-Objekt, in dem Dateianlagen gespeichert werden. Dies ist ein optionaler Parameter. Sie können null
festlegen, wenn Sie keine Dateien an das Formular anhängen möchten.com.adobe.idp.services.holders.BLOBHolder
-Objekt, das von der Methode aufgefüllt wird. Dieser Parameter wird zum Speichern des wiedergegebenen PDF-Formulars verwendet.javax.xml.rpc.holders.LongHolder
-Objekt, das von der Methode aufgefüllt wird. (Dieses Argument speichert die Anzahl der Seiten im Formular).javax.xml.rpc.holders.StringHolder
-Objekt, das von der Methode gefüllt wird. (Dieses Argument speichert den Gebietsschemawert).com.adobe.idp.services.holders.FormsResultHolder
-Objekt, das die Ergebnisse dieses Vorgangs enthält.Die Methode renderPDFForm
füllt das com.adobe.idp.services.holders.FormsResultHolder
-Objekt, das als letzter Argumentwert übergeben wird, mit einem Formulardaten-Stream, der in den Client-Webbrowser geschrieben werden muss.
Schreiben des Formulardaten-Streams in den Client-Webbrowser
FormResult
-Objekt, indem Sie den Wert des Datenelements value
des com.adobe.idp.services.holders.FormsResultHolder
-Objekts abrufen.BLOB
-Objekt, das Formulardaten enthält, indem Sie die Methode getOutputContent
des FormsResult
-Objekts aufrufen.BLOB
-Objekts, indem Sie seine Methode getContentType
aufrufen.javax.servlet.http.HttpServletResponse
-Objekts fest, indem Sie seine Methode setContentType
aufrufen und den Content-Typ des BLOB
-Objekts übergeben.javax.servlet.ServletOutputStream
-Objekt, das zum Schreiben des Formulardaten-Stream in den Client-Webbrowser verwendet wird, indem Sie die Methode getOutputStream
des javax.servlet.http.HttpServletResponse
-Objekts aufrufen.getBinaryData
des BLOB
-Objekts aufrufen. Mit dieser Aufgabe wird dem Byte-Array der Inhalt des FormsResult
-Objekts zugewiesen.write
des javax.servlet.http.HttpServletResponse
-Objekts auf, um den Formulardaten-Stream an den Client-Webbrowser zu senden. Übergeben Sie das Byte-Array an die Methode write
.Siehe auch