Zusammenfassung der Schritte

Um ein Formular anhand eines Werts wiederzugeben, führen Sie die folgenden Schritte aus:

  1. Schließen Sie Projektdateien ein.
  2. Erstellen Sie ein Forms-Client-API-Objekt.
  3. Verweisen Sie auf den Formularentwurf.
  4. Rendern Sie ein Formular anhand eines Werts.
  5. Schreiben Sie den Formular-Datenstrom in den Client-Webbrowser.

Projektdateien einschließen

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 Web-Services verwenden, stellen Sie sicher, dass Sie die Proxy-Dateien einschließen.

Erstellen eines Objekts für die Forms Client API

Bevor Sie Daten programmgesteuert in eine PDF-Formular-Client-API importieren können, müssen Sie einen Client für den Data Integration-Service erstellen. Beim Erstellen eines Service-Clients definieren Sie Verbindungseinstellungen, die zum Aufrufen eines Services erforderlich sind.

Verweisen auf den Formularentwurf

Wenn Sie ein Formular anhand eines Werts rendern, müssen Sie ein com.adobe.idp.Document-Objekt erstellen, das den zu rendernden Formularentwurf enthält. Sie können auf eine vorhandene XDP-Datei verweisen oder einen Formularentwurf zur Laufzeit dynamisch erstellen und ein com.adobe.idp.Document mit diesen Daten auffüllen.

HINWEIS
Dieser Abschnitt und die entsprechende Kurzanleitung verweisen auf eine vorhandene XDP-Datei.

Rendern eines Formulars anhand eines Werts

Um ein Formular anhand von Werten zu rendern, übergeben Sie eine com.adobe.idp.Document-Instanz, die den Formularentwurf enthält, an den Parameter inDataDoc der Render-Methode (dies kann eine beliebige Render-Methode des FormsServiceClient-Objekts sein, z. B. renderPDFForm, (Deprecated) renderHTMLForm usw.). Dieser Parameterwert ist normalerweise für Daten reserviert, die mit dem Formular zusammengeführt werden. Übergeben Sie einen leeren Zeichenfolgenwert an den Parameter formQuery. Normalerweise erfordert dieser Parameter einen Zeichenfolgenwert, der den Namen des Formularentwurfs angibt.

HINWEIS
Wenn Sie Daten innerhalb des Formulars anzeigen möchten, müssen die Daten innerhalb des Elements xfa:datasets angegeben werden. Informationen zur XFA-Architektur finden Sie unter https://www.pdfa.org/norm-refs/XFA-3_3.pdf.

Senden des Formular-Datenstreams an den Client-Webbrowser

Wenn der Forms-Service ein Formular anhand des Werts rendert, wird ein Formulardaten-Stream zurückgegeben, den Sie in den Client-Webbrowser schreiben müssen. Sobald das Formular in den Client-Webbrowser geschrieben wurde, ist es für den Benutzer sichtbar.

Siehe auch

Rendern eines Formulars anhand eines Werts mithilfe der Java-API

Rendern eines Formulars anhand eines Werts 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

Rendern eines Formulars anhand eines Werts mithilfe der Java-API

So rendern Sie ein Formular anhand eines Werts mithilfe der Forms-API (Java):

  1. Projektdateien einschließen

    Fügen Sie Client-JAR-Dateien wie „adobe-forms-client.jar“ in den Klassenpfad Ihres Java-Projekts ein.

  2. Erstellen eines Forms Client-API-Objekts

    • Erstellen Sie ein ServiceClientFactory-Objekt, das Verbindungseigenschaften enthält.
    • Erstellen Sie ein FormsServiceClient-Objekt, indem Sie seinen Konstruktor verwenden und das ServiceClientFactory-Objekt übergeben.
  3. Referenzieren des Formularentwurfs

    • Erstellen Sie ein java.io.FileInputStream-Objekt, das den zu rendernden Formularentwurf darstellt, indem Sie seinen Konstruktor verwenden und einen Zeichenfolgenwert übergeben, der den Speicherort der XDP-Datei angibt.
    • Erstellen Sie ein com.adobe.idp.Document-Objekt, indem Sie seinen Konstruktor verwenden und das java.io.FileInputStream-Objekt übergeben.
  4. Rendern eines Formulars anhand eines Werts

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

    • Ein leerer Zeichenfolgenwert. (Normalerweise erfordert dieser Parameter einen Zeichenfolgenwert, der den Namen des Formularentwurfs angibt.)
    • Ein com.adobe.idp.Document-Objekt, das den Formularentwurf enthält. Normalerweise ist dieser Parameterwert für Daten reserviert, die mit dem Formular zusammengeführt werden.
    • Ein PDFFormRenderSpec-Objekt, das Laufzeitoptionen speichert. Dies ist ein optionaler Parameter, für den Sie null angeben können, wenn Sie keine Laufzeitoptionen angeben möchten.
    • Ein URLSpec-Objekt, das URI-Werte enthält, die für den Forms-Service erforderlich sind.
    • Ein 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 kann.

  5. Schreiben des Formulardaten-Streams in den Client-Webbrowser

    • Erstellen Sie ein Objekt vom Typ com.adobe.idp.Document, indem Sie die Methode getOutputContent des FormsResult-Objekts aufrufen.
    • Ermitteln Sie den Content-Typ des com.adobe.idp.Document-Objekts, indem Sie seine Methode getContentType aufrufen.
    • Legen Sie den Content-Typ des javax.servlet.http.HttpServletResponse-Objekts fest, indem Sie seine Methode setContentType aufrufen und den Content-Typ des com.adobe.idp.Document-Objekts übergeben.
    • Erstellen Sie ein Objekt vom Typ javax.servlet.ServletOutputStream, das zum Schreiben des Formulardatenstroms in den Client-Webbrowser verwendet wird, indem Sie die Methode getOutputStream des javax.servlet.http.HttpServletResponse-Objekts aufrufen.
    • Erstellen Sie ein Objekt vom Typ java.io.InputStream, indem Sie die Methode getInputStream des com.adobe.idp.Document-Objekts aufrufen.
    • Erstellen Sie ein Byte-Array und weisen Sie die Größe des InputStream-Objekts zu. Rufen Sie die Methode available des InputStream-Objekts auf, um die Größe des InputStream-Objekts zu erhalten.
    • Füllen Sie das Byte-Array mit dem Formulardatenstrom, indem Sie die Methode read des InputStream-Objekts aufrufen und das Byte-Array als Argument übergeben.
    • Rufen Sie die Methode write des javax.servlet.ServletOutputStream-Objekts auf, um den Formulardatenstrom an den Client-Webbrowser zu senden. Übergeben Sie das Byte-Array an die Methode write.