Rendern von Forms auf dem Client

Rendern von Forms auf dem Client

Sie können den Versand von PDF-Inhalten optimieren und die Fähigkeit des Forms-Dienstes, Netzwerklasten zu bewältigen, verbessern, indem Sie die clientseitige Renderfunktion von Acrobat oder Adobe Reader verwenden. Dieser Prozess wird als Wiedergabe eines Formulars auf dem Client bezeichnet. Um ein Formular auf dem Client wiederzugeben, muss das Clientgerät (normalerweise ein Webbrowser) Acrobat 7.0 oder Adobe Reader 7.0 oder höher verwenden.

Änderungen an einem Formular, die sich aus der serverseitigen Skriptausführung ergeben, werden nicht in einem Formular übernommen, das auf dem Client wiedergegeben wird, es sei denn, das Stammteilformular enthält das restoreState-Attribut, das auf auto eingestellt ist. Weitere Informationen zu diesem Attribut finden Sie unter Forms Designer.

HINWEIS

Weitere Informationen zum Forms-Dienst finden Sie unter Dienste-Referenz für AEM Forms.

Zusammenfassung der Schritte

So rendern Sie ein Formular auf dem Client:

  1. Schließen Sie Projektdateien ein.
  2. Erstellen Sie ein Forms Client-API-Objekt.
  3. Legen Sie Clientrendering-Laufzeitoptionen fest.
  4. Formular auf dem Client wiedergeben.
  5. Schreiben Sie das Formular in den Client-Webbrowser.

Projektdateien einschließen

Schließen Sie die erforderlichen Dateien in Ihr Entwicklungsprojekt ein. Wenn Sie eine Clientanwendung mit Java erstellen, schließen Sie die erforderlichen JAR-Dateien ein. Wenn Sie Webdienste verwenden, stellen Sie sicher, dass Sie die Proxydateien einschließen.

Forms Client API-Objekt erstellen

Bevor Sie einen Forms-Dienst-Client-API-Vorgang programmgesteuert durchführen können, müssen Sie einen Forms-Dienstclient erstellen. Wenn Sie die Java-API verwenden, erstellen Sie ein FormsServiceClient-Objekt. Wenn Sie die Forms-Webdienst-API verwenden, erstellen Sie ein FormsService-Objekt.

Festlegen von Laufzeitoptionen für das Rendern von Clients

Sie müssen die Client-Rendering-Laufzeitoption festlegen, um ein Formular auf dem Client wiederzugeben, indem Sie die Laufzeitoption RenderAtClient auf true festlegen. Dadurch wird das Formular an das Client-Gerät gesendet, auf dem es wiedergegeben wird. Ist RenderAtClient auto (Standardwert), bestimmt der Formularentwurf, ob das Formular auf dem Client wiedergegeben wird. Der Formularentwurf muss ein Formularentwurf mit einem flexiblen Layout sein.

Eine optionale Laufzeitoption, die Sie einstellen können, ist die Option SeedPDF. Die Option SeedPDF kombiniert den PDF-Container (Seed PDF-Dokument) mit dem Formularentwurf und den XML-Daten. Sowohl der Formularentwurf als auch die XML-Daten werden an Acrobat oder Adobe Reader gesendet, wo das Formular wiedergegeben wird. Die Option SeedPDF kann verwendet werden, wenn der Clientcomputer keine im Formular verwendeten Schriften enthält, z. B. wenn ein Endbenutzer nicht für die Verwendung einer Schrift lizenziert ist, für die der Formularinhaber eine Lizenz besitzt.

Sie können Designer verwenden, um eine einfache dynamische PDF-Datei zu erstellen, die als Seed-PDF-Datei verwendet werden soll. Die folgenden Schritte sind erforderlich, um diese Aufgabe durchzuführen:

  1. Legen Sie fest, ob Schriftarten in die Seed-PDF-Datei eingebettet werden müssen. Die Seed-PDF-Datei muss zusätzliche Schriftarten enthalten, die für das wiedergegebene Formular erforderlich sind. Wenn Sie Schriftarten in die Seed-PDF-Datei einbetten, stellen Sie sicher, dass Sie keine Schriftartlizenzvereinbarungen verletzen. In Designer können Sie festlegen, ob Schriftarten legal eingebettet werden können. Wenn beim Speichern keine Schriften in das Formular eingebettet werden können, zeigt Designer eine Meldung an, in der die Schriften aufgelistet werden, die nicht eingebettet werden können. Diese Meldung wird in Designer für statische PDF-Dokumente nicht angezeigt.
  2. Wenn Sie die Seed-PDF-Datei in Designer erstellen, sollten Sie mindestens ein Textfeld mit einer Meldung hinzufügen. Die Meldung sollte an Benutzer früherer Versionen von Adobe Reader gerichtet werden und darauf hinweisen, dass sie zur Ansicht des Dokuments Acrobat 7.0 oder höher oder Adobe Reader 7.0 oder höher benötigen.
  3. Speichern Sie die Seed-PDF-Datei als dynamische PDF-Datei mit der Erweiterung des PDF-Dateinamens.
HINWEIS

Sie müssen die Laufzeitoption "Seed PDF"nicht definieren, um ein Formular auf dem Client wiederzugeben. Wenn Sie keine Seed-PDF-Datei angeben, erstellt der Forms-Dienst eine Shell-PDF, die keine COS-Objekte enthält, aber einen PDF-Wrapper mit dem tatsächlichen XDP-Inhalt enthält, der in das Dokument eingebettet ist. Die Schritte in diesem Abschnitt legen die Option zum Starten der PDF-Laufzeitumgebung nicht fest. Weitere Informationen zu COS-Objekten finden Sie im Adobe PDF-Referenzhandbuch.

Formular auf dem Client wiedergeben

Um ein Formular auf dem Client wiederzugeben, müssen Sie sicherstellen, dass die Client-Rendering-Laufzeitoptionen in Ihrer Anwendungslogik enthalten sind, um ein Formular wiederzugeben.

Schreiben des Formulardatenstreams in den Client-Webbrowser

Der Forms-Dienst erstellt einen Formulardatenstream, den Sie in den Client-Webbrowser schreiben müssen. Wenn das Formular in den Client-Webbrowser geschrieben wird, wird es von Acrobat 7.0 oder Adobe Reader 7.0 oder höher wiedergegeben und ist für den Benutzer sichtbar.

Siehe auch

Formular mit der Java-API auf dem Client wiedergeben

Formular mit der Webdienst-API auf dem Client wiedergeben

Einbeziehung von AEM Forms Java-Bibliotheksdateien

Verbindungseigenschaften festlegen

Beginn zur Forms Service API

Weiterleiten von Dokumenten an den Forms-Dienst

Erstellen von Webanwendungen zum Rendern von Forms

Formular mit der Java-API auf dem Client wiedergeben

Wiedergabe eines Formulars auf dem Client mithilfe der Forms API (Java):

  1. Projektdateien einschließen

    Schließen Sie Client-JAR-Dateien wie "adobe-forms-client.jar"im Klassenpfad Ihres Java-Projekts ein.

  2. Forms Client API-Objekt erstellen

    • Erstellen Sie ein ServiceClientFactory-" -Objekt, das Verbindungseigenschaften enthält.
    • Erstellen Sie ein FormsServiceClient-Objekt, indem Sie den Konstruktor verwenden und das ServiceClientFactory-Objekt übergeben.
  3. Festlegen von Laufzeitoptionen für das Rendern von Clients

    • Erstellen Sie ein Objekt PDFFormRenderSpec, indem Sie den Konstruktor verwenden.
    • Legen Sie die Laufzeitoption RenderAtClient fest, indem Sie die setRenderAtClient-Methode des Objekts aufrufen und den Enum-Wert RenderAtClient.Yes übergeben.PDFFormRenderSpec
  4. Formular auf dem Client wiedergeben

    Rufen Sie die renderPDFForm-Methode des Objekts auf und übergeben Sie die folgenden Werte:FormsServiceClient

    • Ein Zeichenfolgenwert, der den Namen des Formularentwurfs einschließlich der Dateinamenerweiterung angibt. Wenn Sie auf einen Formularentwurf verweisen, der Teil einer AEM Forms-Anwendung ist, stellen Sie sicher, dass Sie den vollständigen Pfad angeben, z. B. Applications/FormsApplication/1.0/FormsFolder/Loan.xdp.
    • Ein 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.
    • Ein PDFFormRenderSpec-Objekt, das Laufzeitoptionen speichert, die zum Rendern eines Formulars auf dem Client erforderlich sind.
    • Ein URLSpec-Objekt, das URI-Werte enthält, die vom Forms-Dienst zum Rendern eines Formulars erforderlich sind.
    • Ein java.util.HashMap-Objekt, das Dateianlagen speichert. Dies ist ein optionaler Parameter und Sie können null angeben, wenn Sie keine Dateien an das Formular anhängen möchten.

    Die renderPDFForm-Methode gibt ein FormsResult-Objekt zurück, das einen Formulardatenstream enthält, der in den Client-Webbrowser geschrieben werden muss.

  5. Schreiben des Formulardatenstreams in den Client-Webbrowser

    • Erstellen Sie ein com.adobe.idp.Document-Objekt, indem Sie die FormsResult-Methode "s getOutputContent"aufrufen.
    • Rufen Sie den Inhaltstyp des com.adobe.idp.Document-Objekts ab, indem Sie dessen getContentType-Methode aufrufen.
    • Legen Sie den Inhaltstyp des Objekts javax.servlet.http.HttpServletResponse fest, indem Sie die setContentType-Methode aufrufen und den Inhaltstyp des com.adobe.idp.Document-Objekts übergeben.
    • Erstellen Sie ein javax.servlet.ServletOutputStream-Objekt, das zum Schreiben des Formulardatenstreams in den Client-Webbrowser verwendet wird, indem Sie die getOutputStream-Methode des Objekts aufrufen.javax.servlet.http.HttpServletResponse
    • Erstellen Sie ein java.io.InputStream-Objekt, indem Sie die com.adobe.idp.Document-Methode des Objekts getInputStream aufrufen.
    • Erstellen Sie ein Bytearray und füllen Sie es mit dem Formulardatenstream, indem Sie die read-Methode des Objekts aufrufen und das Bytearray als Argument übergeben.InputStream
    • Rufen Sie die write-Methode des Objekts auf, um den Formulardatenstream an den Client-Webbrowser zu senden. javax.servlet.ServletOutputStream Übergeben Sie das Bytearray an die write-Methode.

Siehe auch

Quick Beginn (SOAP-Modus): Wiedergabe eines Formulars auf dem Client mit der Java-API

Einbeziehung von AEM Forms Java-Bibliotheksdateien

Verbindungseigenschaften festlegen

Formular mit der Webdienst-API auf dem Client wiedergeben

Wiedergabe eines Formulars auf dem Client mithilfe der Forms API (Webdienst):

  1. Projektdateien einschließen

    • Erstellen Sie Java-Proxyklassen, die die Forms-Dienst-WSDL verwenden.
    • Schließen Sie die Java-Proxyklassen in Ihren Klassenpfad ein.
  2. Forms Client API-Objekt erstellen

    Erstellen Sie ein FormsService-Objekt und legen Sie Authentifizierungswerte fest.

  3. Festlegen von Laufzeitoptionen für das Rendern von Clients

    • Erstellen Sie ein Objekt PDFFormRenderSpec, indem Sie den Konstruktor verwenden.
    • Legen Sie die Laufzeitoption RenderAtClient fest, indem Sie die setRenderAtClient-Methode des Objekts aufrufen und den Zeichenfolgenwert RenderAtClient.Yes übergeben.PDFFormRenderSpec
  4. Formular auf dem Client wiedergeben

    Rufen Sie die renderPDFForm-Methode des Objekts auf und übergeben Sie die folgenden Werte:FormsService

    • Ein Zeichenfolgenwert, der den Namen des Formularentwurfs einschließlich der Dateinamenerweiterung angibt. Wenn Sie auf einen Formularentwurf verweisen, der Teil einer Forms-Anwendung ist, stellen Sie sicher, dass Sie den vollständigen Pfad angeben, z. B. Applications/FormsApplication/1.0/FormsFolder/Loan.xdp.
    • Ein 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 Forms mit flexiblen Layouts.)
    • Ein PDFFormRenderSpec-Objekt, das Laufzeitoptionen speichert, die zum Rendern eines Formulars auf dem Client erforderlich sind.
    • Ein URLSpec-Objekt, das URI-Werte enthält, die vom Forms-Dienst benötigt werden.
    • Ein java.util.HashMap-Objekt, das Dateianlagen speichert. Dies ist ein optionaler Parameter und Sie können null angeben, wenn Sie keine Dateien an das Formular anhängen möchten.
    • Ein leeres com.adobe.idp.services.holders.BLOBHolder-Objekt, das von der Methode gefüllt wird. Dieser Parameter wird zum Speichern des gerenderten PDF-Formulars verwendet.
    • Ein leeres javax.xml.rpc.holders.LongHolder-Objekt, das von der Methode gefüllt wird. (Dieses Argument speichert die Anzahl der Seiten im Formular.)
    • Ein leeres javax.xml.rpc.holders.StringHolder-Objekt, das von der Methode gefüllt wird. (Dieses Argument speichert den Gebietsschemawert.)
    • Ein leeres com.adobe.idp.services.holders.FormsResultHolder-Objekt, das die Ergebnisse dieses Vorgangs enthält.

    Die renderPDFForm-Methode füllt das com.adobe.idp.services.holders.FormsResultHolder-Objekt, das als letzter Argumentwert übergeben wird, mit einem Formulardatenstream, der in den Client-Webbrowser geschrieben werden muss.

  5. Schreiben des Formulardatenstreams in den Client-Webbrowser

    • Erstellen Sie ein FormResult-Objekt, indem Sie den Wert des com.adobe.idp.services.holders.FormsResultHolder-Datenelements des Objekts value abrufen.
    • Erstellen Sie ein BLOB-Objekt, das Formulardaten enthält, indem Sie die getOutputContent-Methode des Objekts aufrufen.FormsResult
    • Rufen Sie den Inhaltstyp des BLOB-Objekts ab, indem Sie dessen getContentType-Methode aufrufen.
    • Legen Sie den Inhaltstyp des Objekts javax.servlet.http.HttpServletResponse fest, indem Sie die setContentType-Methode aufrufen und den Inhaltstyp des BLOB-Objekts übergeben.
    • Erstellen Sie ein javax.servlet.ServletOutputStream-Objekt, das zum Schreiben des Formulardatenstreams in den Client-Webbrowser verwendet wird, indem Sie die getOutputStream-Methode des Objekts aufrufen.javax.servlet.http.HttpServletResponse
    • Erstellen Sie ein Bytearray und füllen Sie es durch Aufrufen der BLOB-Methode des Objekts getBinaryData. Diese Aufgabe weist dem Bytearray den Inhalt des Objekts FormsResult zu.
    • Rufen Sie die write-Methode des Objekts auf, um den Formulardatenstream an den Client-Webbrowser zu senden. javax.servlet.http.HttpServletResponse Übergeben Sie das Bytearray an die write-Methode.

Siehe auch

Rendern von Forms auf dem Client

Aufrufen von AEM Forms mit Base64-Kodierung

Auf dieser Seite

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now