Erstellen von PDF-Dokumenten

Sie können den Ausgabeservice verwenden, um ein PDF-Dokument zu erstellen, das auf einem Formularentwurf und XML-Formulardaten basiert, die Sie bereitstellen. Das vom Ausgabeservice erstellte PDF-Dokument ist kein interaktives PDF-Dokument. Benutzer können keine Formulardaten eingeben oder ändern.

Wenn Sie ein PDF-Dokument für eine langfristige Speicherung erstellen möchten, wird empfohlen, ein PDF/A-Dokument zu erstellen. (Siehe Erstellen von PDF/A-Dokumenten.)

Verwenden Sie den Forms-Service, um ein interaktives PDF-Formular zu erstellen, mit dem Benutzer Daten eingeben können. (Siehe Rendern interaktiver PDF-Formulare.)

HINWEIS
Weitere Informationen zum Output-Service finden Sie in der Service-Referenz für AEM Forms.

Zusammenfassung der Schritte

Um ein PDF-Dokument zu erstellen, führen Sie die folgenden Schritte aus:

  1. Schließen Sie Projektdateien ein.
  2. Erstellen Sie ein Output-Client-Objekt.
  3. Referenzieren Sie eine XML-Datenquelle.
  4. Legen Sie PDF-Laufzeitoptionen fest.
  5. Legen Sie Rendering-Laufzeitoptionen fest.
  6. Generieren Sie ein PDF-Dokument.
  7. Rufen Sie die Ergebnisse des Vorgangs ab.

Einbinden von Projektdateien

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

Die folgenden JAR-Dateien müssen zum Klassenpfad Ihres Projekts hinzugefügt werden:

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-output-client.jar
  • adobe-utilities.jar (erforderlich, wenn AEM Forms auf JBoss bereitgestellt wird)
  • jbossall-client.jar (erforderlich, wenn AEM Forms auf JBoss bereitgestellt wird)

Wenn AEM Forms auf einem unterstützten J2EE-Anwendungs-Server bereitgestellt wird, der nicht JBOSS ist, müssen Sie „adobe-utilities.jar“ und „jbossall-client.jar“ durch JAR-Dateien ersetzen, die spezifisch für den J2EE-Anwendungs-Server sind, auf dem AEM Forms bereitgestellt wird.

Erstellen eines Output-Client-Objekts

Bevor Sie einen Output-Service-Vorgang programmgesteuert ausführen können, müssen Sie ein Client-Objekt für den Output-Service erstellen. Wenn Sie die Java-API verwenden, erstellen Sie ein OutputClient-Objekt. Wenn Sie die Output-Webservice-API verwenden, erstellen Sie ein OutputServiceService-Objekt.

Referenzieren einer XML-Datenquelle

Um Daten mit dem Formularentwurf zusammenzuführen, müssen Sie eine XML-Datenquelle referenzieren, die Daten enthält. Für jedes Formularfeld, das mit Daten gefüllt werden soll, muss ein XML-Element vorhanden sein. Der Name des XML-Elements muss mit dem Feldnamen übereinstimmen. Ein XML-Element wird ignoriert, wenn es keinem Formularfeld entspricht oder wenn der XML-Elementname nicht mit dem Feldnamen übereinstimmt. Wenn alle XML-Elemente angegeben sind, muss die Reihenfolge, in der die XML-Elemente angezeigt werden, nicht übereinstimmen.

Beachten Sie das folgende Beispielformular für einen Kreditantrag.

cp_cp_loanformdata

Um Daten in diesem Formularentwurf zusammenzuführen, müssen Sie eine XML-Datenquelle erstellen, die dem Formular entspricht. Die folgende XML-Datei stellt eine XDP-XML-Datenquelle dar, die dem Beispielformular für einen Hypothekenantrag entspricht.

 <?xml version="1.0" encoding="UTF-8" ?>
 - <xfa:datasets xmlns:xfa="https://www.xfa.org/schema/xfa-data/1.0/">
 - <xfa:data>
 - <data>
     - <Layer>
         <closeDate>1/26/2007</closeDate>
         <lastName>Johnson</lastName>
         <firstName>Jerry</firstName>
         <mailingAddress>JJohnson@NoMailServer.com</mailingAddress>
         <city>New York</city>
         <zipCode>00501</zipCode>
         <state>NY</state>
         <dateBirth>26/08/1973</dateBirth>
         <middleInitials>D</middleInitials>
         <socialSecurityNumber>(555) 555-5555</socialSecurityNumber>
         <phoneNumber>5555550000</phoneNumber>
     </Layer>
     - <Mortgage>
         <mortgageAmount>295000.00</mortgageAmount>
         <monthlyMortgagePayment>1724.54</monthlyMortgagePayment>
         <purchasePrice>300000</purchasePrice>
         <downPayment>5000</downPayment>
         <term>25</term>
         <interestRate>5.00</interestRate>
     </Mortgage>
 </data>
 </xfa:data>
 </xfa:datasets>

Festlegen von PDF-Laufzeitoptionen

Legen Sie die Datei-URI-Option beim Erstellen eines PDF-Dokuments fest. Diese Option gibt den Namen und den Speicherort der PDF-Datei an, die der Output-Service generiert.

HINWEIS
Statt die Laufzeitoption für den Datei-URI festzulegen, können Sie das PDF-Dokument programmgesteuert vom komplexen Datentyp abrufen, der vom Output-Service zurückgegeben wird. Durch Festlegen der Laufzeitoption für den Datei-URI müssen Sie jedoch keine Programmlogik erstellen, die das PDF-Dokument programmgesteuert abruft.

Festlegen von Rendering-Laufzeitoptionen

Beim Erstellen eines PDF-Dokuments können Sie Rendering-Laufzeitoptionen festlegen. Obwohl diese Optionen nicht erforderlich sind (im Gegensatz zu PDF-Laufzeitoptionen, die erforderlich sind), können Sie Aufgaben wie die Leistungsverbesserung des Output-Service ausführen. Beispielsweise können Sie das Formular-Design zwischenspeichern, das der Ausgabe-Service verwendet, um dessen Leistung zu verbessern.

Wenn Sie ein getaggtes Acrobat-Formular als Eingabe verwenden, können Sie die Java- oder die Webservice-API des Output-Service nicht verwenden, um die getaggte Einstellung zu deaktivieren. Wenn Sie versuchen, diese Option programmgesteuert auf false festzulegen, ist das PDF-Ergebnisdokument weiterhin getaggt.

HINWEIS
Wenn Sie keine Rendering-Laufzeitoptionen angeben, werden Standardwerte verwendet. Informationen zu Rendering-Laufzeitoptionen finden Sie in der RenderOptionsSpec-Klassenreferenz. (Siehe AEM Forms-API-Referenz).

Generieren eines PDF-Dokuments

Nachdem Sie eine gültige XML-Datenquelle referenziert haben, die Formulardaten enthält, und Laufzeitoptionen festgelegt haben, können Sie den Output-Service aufrufen. Dadurch wird ein PDF-Dokument generiert.

Beim Generieren eines PDF-Dokuments geben Sie URI-Werte an, die für den Output-Service zum Erstellen eines PDF-Dokuments erforderlich sind. Ein Formularentwurf kann in Speicherorten wie dem Serverdateisystem oder als Teil eines AEM Forms-Programms gespeichert werden. Ein Formularentwurf (oder andere Ressourcen wie eine Grafikdatei), der Teil eines Forms-Programms ist, kann mithilfe des Inhaltsstamm-URI-Werts repository:/// referenziert werden. Betrachten Sie beispielsweise den folgenden Formularentwurf mit dem Namen Loan.xdp, der in einer Forms-Anwendung mit dem Namen Applications/FormsApplication enthalten ist:

cp_cp_formrepository

Um auf die in der vorherigen Abbildung dargestellte Datei „Loan.xdp“ zuzugreifen, geben Sie repository:///Applications/FormsApplication/1.0/FormsFolder/ als dritten Parameter der Methode generatePDFOutput des OutputClient-Objekts an. Geben Sie den Namen des Formulars (Loan.xdp) als zweiten Parameter an, der an die Methode generatePDFOutput des OutputClient-Objekts übergeben wird.

Wenn die XDP-Datei Bilder (oder andere Ressourcen wie Fragmente) enthält, legen Sie die Ressourcen im gleichen Anwendungsordner wie die XDP-Datei ab. AEM Forms verwendet den Inhaltsstamm-URI als Basispfad, um Verweise auf Bilder aufzulösen. Wenn die Datei „Loan.xdp“ beispielsweise ein Bild enthält, stellen Sie sicher, dass Sie das Bild in Applications/FormsApplication/1.0/FormsFolder/ ablegen.

HINWEIS
Sie können bei Aufrufen der Methode generatePDFOutput oder generatePrintedOutput des OutputClient-Objekts auf den URI der Formularanwendung verweisen.
HINWEIS
Einen vollständigen Schnellstart zum Erstellen eines PDF-Dokuments durch Referenzieren einer XDP-Datei in einer Formularanwendung finden Sie unter Schnellstart (EJB-Modus): Erstellen eines PDF-Dokuments basierend auf einer Anwendungs-XDP-Datei mithilfe der Java-API.

Abrufen der Ergebnisse des Vorgangs

Nachdem der Output-Service einen Vorgang ausgeführt hat, gibt er verschiedene Datenelemente zurück, z. B. Status-XML-Daten, die angeben, ob der Vorgang erfolgreich war.

Siehe auch

Erstellen eines PDF-Dokuments mit der Java-API

Erstellen eines PDF-Dokuments mit der Web Service-API

Einbeziehung von AEM Forms Java-Bibliotheksdateien

Verbindungseigenschaften festlegen

Schnellstarts zur API für Output Service

Erstellen eines PDF-Dokuments mit der Java-API

Erstellen Sie ein PDF-Dokument mithilfe der Output-API (Java):

  1. Schließen Sie Projektdateien ein.

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

  2. Erstellen Sie ein Output-Client-Objekt.

    • Erstellen Sie ein ServiceClientFactory-Objekt, das Verbindungseigenschaften enthält.
    • Erstellen Sie ein OutputClient-Objekt, indem Sie seinen Konstruktor verwenden und das ServiceClientFactory-Objekt übergeben.
  3. Referenzieren Sie eine XML-Datenquelle.

    • Erstellen Sie ein java.io.FileInputStream-Objekt, das die XML-Datenquelle darstellt, die zum Ausfüllen des PDF-Dokuments verwendet wird, indem Sie seinem Konstruktor einen Zeichenfolgenwert übergeben, der den Speicherort der XML-Datei angibt.
    • Erstellen Sie ein Objekt com.adobe.idp.Document, indem Sie den Konstruktor verwenden. Übergeben Sie das java.io.FileInputStream-Objekt.
  4. Legen Sie PDF-Laufzeitoptionen fest.

    • Erstellen Sie ein Objekt PDFOutputOptionsSpec, indem Sie den Konstruktor verwenden.
    • Legen Sie die Datei-URI-Option fest, indem Sie die Methode setFileURI des PDFOutputOptionsSpec-Objekts aufrufen. Übergeben Sie einen Zeichenfolgenwert, der den Speicherort der vom Output-Service generierten PDF-Datei angibt. Die Datei-URI-Option ist relativ zum J2EE-Anwendungsserver, der als Host für AEM Forms dient, nicht zum Clientcomputer.
  5. Legen Sie Rendering-Laufzeitoptionen fest.

    • Erstellen Sie ein Objekt RenderOptionsSpec, indem Sie den Konstruktor verwenden.
    • Speichern Sie den Formularentwurf zwischen, um die Leistung des Ausgabe-Service zu verbessern, indem Sie setCacheEnabled des RenderOptionsSpec-Objekts aufrufen und true übergeben.
    HINWEIS
    Sie können die PDF-Dokumentversion nicht mithilfe der Methode setPdfVersion des RenderOptionsSpec-Objekts festlegen, wenn das Eingabedokument ein Acrobat-Formular (ein in Acrobat erstelltes Formular) oder XFA-Dokument ist, das signiert oder zertifiziert ist. Das PDF-Ausgabedokument behält die PDF-Originalversion bei. Ebenso können Sie die Option für Adobe PDF mit Tags nicht festlegen, indem Sie die Methode setTaggedPDF des RenderOptionsSpec-Objekts aufrufen, wenn das Eingabedokument ein signiertes oder zertifiziertes Acrobat-Formular oder XFA-Dokument ist.
    HINWEIS
    Sie können die Option „Linearisierte PDF“ nicht mithilfe der Methode setLinearizedPDF des RenderOptionsSpec-Objekts festlegen, wenn das PDF-Eingabedokument zertifiziert oder digital signiert ist. (Weitere Informationen finden Sie unter PDF-Dokumente digital signieren.)
  6. Generieren Sie ein PDF-Dokument.

    Erstellen Sie ein PDF-Dokument, indem Sie die Methode generatePDFOutput des OutputClient-Objekts aufrufen und die folgenden Werte übergeben:

    • Einen TransformationFormat-Aufzählungswert. Um ein PDF-Dokument zu generieren, geben Sie TransformationFormat.PDF an.
    • Ein string-Wert, der den Namen des Formularentwurfs angibt.
    • Ein Zeichenfolgenwert, der den Inhaltsstamm angibt, in dem sich der Formularentwurf befindet.
    • Ein PDFOutputOptionsSpec-Objekt, das PDF-Laufzeitoptionen enthält.
    • Ein RenderOptionsSpec-Objekt, das Laufzeitoptionen zum Rendern enthält.
    • Das com.adobe.idp.Document-Objekt, das die XML-Datenquelle mit den Daten enthält, die mit dem Formularentwurf zusammengeführt werden sollen.

    Die generatePDFOutput-Methode gibt ein OutputResult-Objekt zurück, das das Ergebnis der Authentifizierung enthält.

    HINWEIS
    Beim Erzeugen eines PDF-Dokuments durch Aufrufen der Methode generatePDFOutput können Sie keine Daten mit einem XFA-PDF-Formular zusammenführen, das signiert oder zertifiziert ist. (Siehe Digitales Signieren und Zertifizieren von Dokumenten.)
    HINWEIS
    Die Methode getRecordLevelMetaDataList des OutputResult-Objekts gibt nullzurück.
    HINWEIS
    Sie können auch ein PDF-Dokument erstellen, indem Sie die Methode generatePDFOutput2 des OutputClient-Objekts aufrufen. (Weitere Informationen finden Sie unter Übergeben von Dokumenten in Content Services (nicht mehr unterstützt) an den Ausgabe-Service.)
  7. Rufen Sie die Ergebnisse des Vorgangs ab.

    • Rufen Sie ein com.adobe.idp.Document-Objekt ab, das den Status des Vorgangs generatePDFOutput darstellt, indem Sie die Methode getStatusDoc des OutputResult-Objekts aufrufen. Diese Methode gibt Status-XML-Daten zurück, die angeben, ob der Vorgang erfolgreich war.
    • Erstellen Sie ein java.io.File-Objekt, das die Ergebnisse des Vorgangs enthält. Stellen Sie sicher, dass die Dateinamenerweiterung .xml lautet.
    • Rufen Sie die Methode copyToFile des com.adobe.idp.Document-Objekts auf, um die Inhalte des com.adobe.idp.Document-Objekts in die Datei zu kopieren (stellen Sie sicher, dass Sie das com.adobe.idp.Document-Objekt benutzen, das von der Methode getStatusDoc zurückgegeben wurde).

    Obwohl der Ausgabe-Service das PDF-Dokument an den Speicherort schreibt, der in dem an die Methode setFileURI des PDFOutputOptionsSpec-Objekts übergebenen Argument angegeben wird, können Sie das PDF/A-Dokument programmgesteuert abrufen, indem Sie die Methode getGeneratedDoc des OutputResult-Objekts aufrufen.