Show Menu
THEMEN×

Zusammenstellen von nicht interaktiven PDF-Dokumenten

Sie können ein nicht interaktives PDF-Dokument zusammenstellen, wenn Sie ein interaktives PDF-Formular als Eingabe verwenden. Angenommen, Sie verfügen über ein Formular, mit dem Benutzer Daten in die Felder eingeben können. Sie können dieses Formular an den Assembler-Dienst weiterleiten, sodass der Assembler-Dienst ein PDF-Dokument zurückgibt, das die Eingabe von Daten durch Benutzer verhindert. Dieses Dokument ist ein nicht interaktives PDF-Formular. Die folgende Abbildung zeigt beispielsweise einen Hypothekenantrag, der ein interaktives Formular darstellt.
Für diese Diskussion nehmen Sie an, dass das folgende DDX-Dokument verwendet wird.
 <?xml version="1.0" encoding="UTF-8"?>
 <DDX xmlns="https://ns.adobe.com/DDX/1.0/">
      <PDF result="out.pdf">
        <PDF source="inDoc"/>
        <NoXFA/>
      </PDF>
 </DDX>

Beachten Sie in diesem DDX-Dokument, dass dem Quellattribut der Wert zugewiesen wurde inDoc . Weisen Sie in Fällen, in denen nur ein PDF-Eingabedokument an den Assembler-Dienst und ein PDF-Dokument zurückgegeben und Sie den invokeOneDocument Vorgang aufrufen, den Wert inDoc dem PDF-Quellattribut zu. Beim Aufrufen des invokeOneDocument Vorgangs ist der inDoc Wert ein vordefinierter Schlüssel, der im DDX-Dokument angegeben werden muss.
Wenn Sie dagegen zwei oder mehr PDF-Eingabedateien an den Assembler-Dienst übergeben, können Sie den invokeDDX Vorgang aufrufen. Weisen Sie in diesem Fall dem source Attribut den Dateinamen des PDF-Eingabedokuments zu.
Dieses DDX-Dokument enthält das NoXFA Element, das den Assembler-Dienst anweist, ein nicht interaktives PDF-Dokument zurückzugeben.
Der Assembler-Dienst kann nicht interaktive PDF-Dokumente zusammenstellen, ohne dass der Output-Dienst in Ihrer AEM Forms-Installation enthalten ist, wenn das PDF-Dokument für die Eingabe auf einem Acrobat-Formular oder einem statischen XFA-Formular basiert. Wenn es sich bei dem PDF-Dokument für die Eingabe jedoch um ein dynamisches XFA-Formular handelt, muss der Output-Dienst Teil Ihrer AEM Forms-Installation sein. Wenn der Output-Dienst nicht Teil Ihrer AEM Forms-Installation ist, während ein dynamisches XFA-Formular assembliert wird, wird eine Ausnahme ausgelöst. Siehe Erstellen von Dokument-Ausgabestreams .
Bevor Sie diesen Abschnitt lesen, sollten Sie sich mit dem Zusammenstellen von PDF-Dokumenten mit dem Assembler-Dienst vertraut machen. In diesem Abschnitt werden keine Konzepte beschrieben, wie z. B. das Erstellen eines Collection-Objekts, das Eingabedokumente enthält, oder das Extrahieren der Dokumente aus dem zurückgegebenen Collection-Objekt. (Siehe Programmgesteuertes Zusammenstellen von PDF-Dokumenten .)
For more information about the Assembler service, see Services Reference for AEM Forms .
Weitere Informationen zu einem DDX-Dokument finden Sie unter Assembler-Dienst und DDX-Referenz .

Zusammenfassung der Schritte

So assemblieren Sie ein nicht interaktives PDF-Dokument:
  1. Schließen Sie Projektdateien ein.
  2. Erstellen Sie einen PDF Assembler-Client.
  3. Verweisen Sie auf ein vorhandenes DDX-Dokument.
  4. Verweisen Sie auf ein interaktives PDF-Dokument.
  5. Legen Sie Laufzeitoptionen fest.
  6. Stellen Sie das PDF-Dokument zusammen.
  7. Speichern Sie das nicht interaktive PDF-Dokument.
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.
Die folgenden JAR-Dateien müssen dem Klassenpfad Ihres Projekts hinzugefügt werden:
  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-assembler-client.jar
  • adobe-utilities.jar (erforderlich, wenn AEM Forms unter JBoss bereitgestellt werden)
  • jbossall-client.jar (erforderlich, wenn AEM Forms unter JBoss bereitgestellt werden)
Wenn AEM Forms auf einem anderen unterstützten J2EE-Anwendungsserver als JBoss bereitgestellt werden, müssen Sie die Dateien "adobe-utilities.jar"und "jbossall-client.jar"durch JAR-Dateien ersetzen, die für den J2EE-Anwendungsserver spezifisch sind, auf dem AEM Forms bereitgestellt werden.
Assembler-Client erstellen
Bevor Sie einen Assembler-Vorgang programmgesteuert durchführen können, müssen Sie einen Assembler-Dienstclient erstellen.
Ein vorhandenes DDX-Dokument referenzieren
Zum Zusammenführen eines PDF-Dokuments muss auf ein DDX-Dokument verwiesen werden. Dieses DDX-Dokument muss das NoXFA Element enthalten, das den Assembler-Dienst anweist, ein nicht interaktives PDF-Dokument zurückzugeben.
Referenzieren eines interaktiven PDF-Dokuments
Ein interaktives PDF-Dokument muss referenziert und an den Assembler-Dienst übergeben werden, um ein nicht interaktives PDF-Dokument zurückzuerhalten.
Festlegen von Laufzeitoptionen
Sie können Laufzeitoptionen festlegen, die das Verhalten des Assembler-Dienstes während der Ausführung eines Auftrags steuern. Sie können beispielsweise eine Option festlegen, mit der der Assembler-Dienst angewiesen wird, bei Auftreten eines Fehlers mit der Verarbeitung eines Auftrags fortzufahren.
Zusammenstellen des PDF-Dokuments
Nachdem Sie den Assembler-Dienstclient erstellt haben, auf das DDX-Dokument verweisen, auf ein interaktives PDF-Dokument verweisen und Laufzeitoptionen festgelegt haben, können Sie den invokeOneDocument Vorgang aufrufen. Da nur ein PDF-Eingabedokument an den Assembler-Dienst übergeben und ein einziges Dokument zurückgegeben wird, können Sie den invokeOneDocument Vorgang anstelle des invokeDDX Vorgangs verwenden.
Nicht interaktives PDF-Dokument speichern
Wenn nur ein einziges PDF-Dokument an den Assembler-Dienst übergeben wird, gibt der Assembler-Dienst ein einzelnes Dokument anstelle eines Collection-Objekts zurück. Das heißt, beim Aufrufen des invokeOneDocument Vorgangs wird ein einzelnes Dokument zurückgegeben. Da das in diesem Abschnitt referenzierte DDX-Dokument Anweisungen zum Erstellen eines nicht interaktiven PDF-Dokuments enthält, gibt der Assembler-Dienst ein nicht interaktives PDF-Dokument zurück, das als PDF-Datei gespeichert werden kann.
Siehe auch

Nicht interaktives PDF-Dokument mit der Java-API zusammenstellen

Stellen Sie ein nicht interaktives PDF-Dokument mit der Assembler Service API (Java) zusammen:
  1. Schließen Sie Projektdateien ein.
    Schließen Sie Client-JAR-Dateien wie "adobe-assembler-client.jar"im Klassenpfad Ihres Java-Projekts ein.
  2. Erstellen Sie einen Assembler-Client.
    • Erstellen Sie ein ServiceClientFactory -" -Objekt, das Verbindungseigenschaften enthält.
    • Create an AssemblerServiceClient object by using its constructor and passing the ServiceClientFactory object.
  3. Verweisen Sie auf ein vorhandenes DDX-Dokument.
    • Erstellen Sie ein java.io.FileInputStream Objekt, das das DDX-Dokument darstellt, indem Sie den Konstruktor verwenden und einen Zeichenfolgenwert übergeben, der den Speicherort der DDX-Datei angibt.
    • Erstellen Sie ein com.adobe.idp.Document -Objekt, indem Sie seinen Konstruktor verwenden und das java.io.FileInputStream -Objekt übergeben.
  4. Verweisen Sie auf ein interaktives PDF-Dokument.
    • Erstellen Sie ein java.io.FileInputStream Objekt, indem Sie den Konstruktor verwenden und den Speicherort eines interaktiven PDF-Dokuments übergeben.
    • Erstellen Sie ein com.adobe.idp.Document Objekt und übergeben Sie das java.io.FileInputStream Objekt, das das PDF-Dokument enthält. Dieses com.adobe.idp.Document Objekt wird an die invokeOneDocument Methode übergeben.
  5. Legen Sie Laufzeitoptionen fest.
    • Erstellen Sie ein AssemblerOptionSpec Objekt, das Laufzeitoptionen mithilfe des Konstruktors speichert.
    • Legen Sie Laufzeitoptionen fest, um Ihre Geschäftsanforderungen zu erfüllen, indem Sie eine Methode aufrufen, die zum AssemblerOptionSpec Objekt gehört. Um beispielsweise den Assembler-Dienst anzuweisen, bei einem Fehler mit der Verarbeitung eines Auftrags fortzufahren, rufen Sie die AssemblerOptionSpec Methode des setFailOnError Objekts auf und übergeben Sie sie false .
  6. Stellen Sie das PDF-Dokument zusammen.
    Rufen Sie die AssemblerServiceClient Objektmethode invokeOneDocument auf und übergeben Sie die folgenden Werte:
    • Ein com.adobe.idp.Document Objekt, das das DDX-Dokument darstellt. Stellen Sie sicher, dass dieses DDX-Dokument den Wert inDoc für das PDF-Quellelement enthält.
    • Ein com.adobe.idp.Document Objekt, das das interaktive PDF-Dokument enthält.
    • Ein com.adobe.livecycle.assembler.client.AssemblerOptionSpec Objekt, das die Laufzeitoptionen einschließlich der standardmäßigen Schriftart- und Auftragsprotokollebene angibt.
    Die invokeOneDocument Methode gibt ein com.adobe.idp.Document Objekt zurück, das ein nicht interaktives PDF-Dokument enthält.
  7. Speichern Sie das nicht interaktive PDF-Dokument.
    • Create a java.io.File object and ensure that the file name extension is .pdf.
    • Invoke the Document object’s copyToFile method to copy the contents of the Document object to the file. Stellen Sie sicher, dass Sie das Document Objekt verwenden, das von der invokeOneDocument Methode zurückgegeben wurde.
  • "Quick Beginn (SOAP-Modus): Zusammenstellen eines nicht interaktiven PDF-Dokuments mit der Java-API"

Nicht interaktives PDF-Dokument mit der Webdienst-API zusammenstellen

Stellen Sie ein nicht interaktives PDF-Dokument mit der Assembler Service API (Webdienst) zusammen:
  1. Schließen Sie Projektdateien ein.
    Erstellen Sie ein Microsoft .NET-Projekt, das MTOM verwendet. Stellen Sie sicher, dass Sie die folgende WSDL-Definition verwenden: http://localhost:8080/soap/services/AssemblerService?WSDL&lc_version=9.0.1 .
    Ersetzen Sie localhost dies durch die IP-Adresse des Hosting-AEM Forms.
  2. Erstellen Sie einen Assembler-Client.
    • Erstellen Sie ein AssemblerServiceClient Objekt mit dem Standardkonstruktor.
    • Erstellen Sie ein AssemblerServiceClient.Endpoint.Address Objekt mithilfe des System.ServiceModel.EndpointAddress Konstruktors. Übergeben Sie einen Zeichenfolgenwert, der die WSDL an den AEM Forms-Dienst angibt (z. B. http://localhost:8080/soap/services/AssemblerService?blob=mtom ). Sie müssen das lc_version Attribut nicht verwenden. Dieses Attribut wird verwendet, wenn Sie eine Dienstreferenz erstellen.
    • Erstellen Sie ein System.ServiceModel.BasicHttpBinding Objekt, indem Sie den Wert des AssemblerServiceClient.Endpoint.Binding Felds abrufen. Wandeln Sie den Rückgabewert in BasicHttpBinding um.
    • Legen Sie für das System.ServiceModel.BasicHttpBinding Objektfeld MessageEncoding den Wert WSMessageEncoding.Mtom fest. Dieser Wert stellt sicher, dass MTOM verwendet wird.
    • Aktivieren Sie die einfache HTTP-Authentifizierung, indem Sie die folgenden Aufgaben ausführen:
      • Weisen Sie dem Feld den AEM Forms-Benutzernamen zu AssemblerServiceClient.ClientCredentials.UserName.UserName .
      • Weisen Sie dem Feld den entsprechenden Kennwortwert zu AssemblerServiceClient.ClientCredentials.UserName.Password .
      • Weisen Sie dem Feld den Konstantenwert HttpClientCredentialType.Basic zu BasicHttpBindingSecurity.Transport.ClientCredentialType .
      • Weisen Sie dem Feld den Konstantenwert BasicHttpSecurityMode.TransportCredentialOnly zu BasicHttpBindingSecurity.Security.Mode .
  3. Verweisen Sie auf ein vorhandenes DDX-Dokument.
    • Erstellen Sie ein Objekt BLOB , indem Sie den Konstruktor verwenden. Das BLOB Objekt wird zum Speichern des DDX-Dokuments verwendet.
    • Erstellen Sie ein System.IO.FileStream Objekt, indem Sie den Konstruktor aufrufen und einen Zeichenfolgenwert übergeben, der den Dateispeicherort des DDX-Dokuments und den Modus zum Öffnen der Datei darstellt.
    • Erstellen Sie ein Bytearray, das den Inhalt des System.IO.FileStream Objekts speichert. Sie können die Größe des Byte-Arrays bestimmen, indem Sie die System.IO.FileStream Objekteigenschaft Length abrufen.
    • Füllen Sie das Bytearray mit Stream-Daten, indem Sie die System.IO.FileStream Objektmethode Read aufrufen. Übergeben Sie das Bytearray, die Startposition und die zu lesende Stream-Länge.
    • Füllen Sie das BLOB Objekt, indem Sie seinem MTOM Feld den Inhalt des Byte-Arrays zuweisen.
  4. Verweisen Sie auf ein interaktives PDF-Dokument.
    • Erstellen Sie ein Objekt BLOB , indem Sie den Konstruktor verwenden. Das BLOB Objekt wird zum Speichern des PDF-Eingabedokuments verwendet. Dieses BLOB Objekt wird als invokeOneDocument Argument an das Objekt übergeben.
    • Erstellen Sie ein System.IO.FileStream Objekt, indem Sie den Konstruktor aufrufen und einen Zeichenfolgenwert übergeben, der den Dateispeicherort des PDF-Eingabedatums und den Modus zum Öffnen der Datei darstellt.
    • Erstellen Sie ein Bytearray, das den Inhalt des System.IO.FileStream Objekts speichert. Sie können die Größe des Byte-Arrays bestimmen, indem Sie die System.IO.FileStream Objekteigenschaft Length abrufen.
    • Füllen Sie das Bytearray mit Stream-Daten, indem Sie die System.IO.FileStream Objektmethode Read aufrufen. Übergeben Sie das Bytearray, die Startposition und die zu lesende Stream-Länge.
    • Füllen Sie das BLOB Objekt, indem Sie seinem MTOM Feld den Inhalt des Byte-Arrays zuweisen.
  5. Legen Sie Laufzeitoptionen fest.
    • Erstellen Sie ein AssemblerOptionSpec Objekt, das Laufzeitoptionen mithilfe des Konstruktors speichert.
    • Legen Sie Laufzeitoptionen fest, um Ihre Geschäftsanforderungen zu erfüllen, indem Sie einem Datenmember, der zum AssemblerOptionSpec Objekt gehört, einen Wert zuweisen. Um beispielsweise den Assembler-Dienst anzuweisen, bei einem Fehler mit der Verarbeitung eines Auftrags fortzufahren, weisen Sie ihn false dem AssemblerOptionSpec Datenmember des failOnError Objekts zu.
  6. Stellen Sie das PDF-Dokument zusammen.
    Rufen Sie die AssemblerServiceClient Objektmethode invokeOneDocument auf und übergeben Sie die folgenden Werte:
    • Ein BLOB Objekt, das das DDX-Dokument darstellt
    • A BLOB object that represents the interactive PDF document
    • Ein AssemblerOptionSpec Objekt, das Laufzeitoptionen angibt
    Die invokeOneDocument Methode gibt ein BLOB Objekt zurück, das ein nicht interaktives PDF-Dokument enthält.
  7. Speichern Sie das nicht interaktive PDF-Dokument.
    • Erstellen Sie ein System.IO.FileStream Objekt, indem Sie den Konstruktor aufrufen und einen Zeichenfolgenwert übergeben, der den Dateispeicherort des nicht interaktiven PDF-Dokuments und den Modus zum Öffnen der Datei darstellt.
    • Erstellen Sie ein Byte-Array, das den Inhalt des BLOB Objekts speichert, das von der invokeOneDocument Methode zurückgegeben wurde. Füllen Sie das Byte-Array, indem Sie den Wert des BLOB Objektfelds MTOM abrufen.
    • Create a System.IO.BinaryWriter object by invoking its constructor and passing the System.IO.FileStream object.
    • Schreiben Sie den Inhalt des Byte-Arrays in eine PDF-Datei, indem Sie die System.IO.BinaryWriter Objektmethode aufrufen und das Bytearray Write übergeben.
  • "Quick Beginn (MTOM): Zusammenstellen eines nicht interaktiven PDF-Dokuments mit der Webdienst-API".
Siehe auch