Aufteilen eines PDF-Dokuments mithilfe der Webdienst-API disassemble-a-pdf-document-usingthe-web-service-api
Die Beispiele in diesem Dokument gelten nur für eine AEM Forms on JEE-Umgebung.
Aufteilen eines PDF-Dokuments mithilfe der Assembler-Service-API (Webservice):
-
Schließen Sie Projektdateien ein.
Erstellen Sie ein Microsoft .NET-Projekt, das MTOM verwendet. Stellen Sie sicher, dass Sie beim Festlegen einer Service-Referenz die folgende WSDL-Definition verwenden:
http://localhost:8080/soap/services/AssemblerService?WSDL&lc_version=9.0.1
.note note NOTE Ersetzen localhost
durch die IP-Adresse des Servers, auf dem AEM Forms gehostet wird. -
Erstellen Sie einen PDF Assembler-Client.
-
Erstellen Sie ein
AssemblerServiceClient
-Objekt, indem Sie seinen standardmäßigen Konstruktor verwenden. -
Erstellen Sie ein
AssemblerServiceClient.Endpoint.Address
-Objekt mithilfe desSystem.ServiceModel.EndpointAddress
-Konstruktors. Übergeben Sie einen Zeichenfolgenwert mit der WSDL an den AEM Forms-Service (z. B.http://localhost:8080/soap/services/AssemblerService?blob=mtom
). Sie müssen daslc_version
-Attribut nicht verwenden. Dieses Attribut wird verwendet, wenn Sie einen Service-Verweis erstellen. -
Erstellen Sie ein
System.ServiceModel.BasicHttpBinding
-Objekr, indem Sie den Wert des FeldsAssemblerServiceClient.Endpoint.Binding
abrufen. Wandeln Sie den Rückgabewert inBasicHttpBinding
um. -
Legen Sie das
MessageEncoding
-Feld desSystem.ServiceModel.BasicHttpBinding
-Objekts aufWSMessageEncoding.Mtom
fest. Dieser Wert stellt sicher, dass MTOM verwendet wird. -
Aktivieren Sie die einfache HTTP-Authentifizierung, indem Sie die folgenden Schritte ausführen:
- Weisen Sie dem Feld
AssemblerServiceClient.ClientCredentials.UserName.UserName
den AEM Forms-Benutzernamen zu. - Weisen Sie dem Feld
AssemblerServiceClient.ClientCredentials.UserName.Password
den entsprechenden Passwortwert zu. - Weisen Sie dem Feld
BasicHttpBindingSecurity.Transport.ClientCredentialType
den konstanten WertHttpClientCredentialType.Basic
zu. - Weisen Sie dem Feld
BasicHttpBindingSecurity.Security.Mode
den KonstantenwertBasicHttpSecurityMode.TransportCredentialOnly
zu.
- Weisen Sie dem Feld
-
-
Referenzieren Sie ein vorhandenes DDX-Dokument.
- Erstellen Sie ein Objekt
BLOB
, indem Sie den Konstruktor verwenden. DasBLOB
-Objekt wird zum Speichern des DDX-Dokuments verwendet. - Erstellen Sie ein
System.IO.FileStream
-Objekt, indem Sie seinen Konstruktor verwenden. Übergeben Sie einen Zeichenfolgenwert für den Dateispeicherort des DDX-Dokuments und den Modus, in dem die Datei geöffnet werden soll. - Erstellen Sie ein Byte-Array, das den Inhalt des
System.IO.FileStream
-Objekts speichert. Sie können die Größe des Byte-Arrays bestimmen, indem Sie dieLength
-Eigenschaft desSystem.IO.FileStream
-Objekts abrufen. - Füllen Sie das Byte-Array mit Stream-Daten, indem Sie die
Read
-Methode desSystem.IO.FileStream
-Objekts aufrufen und das Byte-Array, die Startposition und die zu lesende Stream-Länge übergeben. - Füllen Sie das
BLOB
-Objekt, indem Sie seinerMTOM
-Eigenschaft den Inhalt des Byte-Arrays zuweisen.
- Erstellen Sie ein Objekt
-
Referenzieren Sie ein zu zerlegendes PDF-Dokument.
- Erstellen Sie ein Objekt
BLOB
, indem Sie den Konstruktor verwenden. DasBLOB
-Objekt wird zum Speichern des PDF-Eingabedokuments verwendet. DiesesBLOB
-Objekt wird aninvokeOneDocument
als Argument weitergegeben. - Erstellen Sie ein
System.IO.FileStream
-Objekt, indem Sie seinen Konstruktor aufrufen und einen Zeichenfolgewert übergeben, der den Dateispeicherort des PDF-Eingabedokuments und den Modus, in dem die Datei geöffnet werden soll, darstellt. - Erstellen Sie ein Byte-Array, in dem der Inhalt des
System.IO.FileStream
-Objekts gespeichert wird. Sie können die Größe des Byte-Arrays bestimmen, indem Sie dieLength
-Eigenschaft desSystem.IO.FileStream
-Objekts abrufen. - Füllen Sie das Byte-Array mit Stream-Daten, indem Sie die
Read
-Methode desSystem.IO.FileStream
-Objekts verwenden und das Byte-Array, die Startposition und die zu lesende Stream-Länge übergeben. - Füllen Sie das
BLOB
-Objekt, indem Sie seinemMTOM
-Feld die Inhalte des Byte-Arrays zuweisen. - Erstellen eines
MyMapOf_xsd_string_To_xsd_anyType
-Objekts. Dieses Sammlungsobjekt wird verwendet, um das aufzuteilende PDF-Dokument zu speichern. - Erstellen eines
MyMapOf_xsd_string_To_xsd_anyType_Item
-Objekts. - Weisen Sie dem
key
-Feld desMyMapOf_xsd_string_To_xsd_anyType_Item
-Objekts einen Zeichenfolgewert zu, der den Schlüsselnamen darstellt. Dieser Wert muss mit dem Wert des im DDX-Dokument angegebenen PDF-Quellelements übereinstimmen. - Weisen Sie das
BLOB
-Objekt, welches das PDF-Dokument speichert, demvalue
-Feld desMyMapOf_xsd_string_To_xsd_anyType_Item
-Objekts zu. - Fügen Sie das
MyMapOf_xsd_string_To_xsd_anyType_Item
-Objekt demMyMapOf_xsd_string_To_xsd_anyType
-Objekt hinzu. Rufen Sie dieMyMapOf_xsd_string_To_xsd_anyType
ObjektAdd
-Methode auf und übergeben Sie dasMyMapOf_xsd_string_To_xsd_anyType
-Objekt.
- Erstellen Sie ein Objekt
-
Legen Sie Laufzeitoptionen fest.
- Erstellen Sie ein
AssemblerOptionSpec
-Objekt, das Laufzeitoptionen speichert, indem Sie seinen Konstruktor verwenden. - Legen Sie Laufzeitoptionen fest, um Ihre Geschäftsanforderungen zu erfüllen, indem Sie einem Datenelement einen Wert zuweisen, der zum
AssemblerOptionSpec
-Objekt gehört. Um beispielsweise den Assembler-Service anzuweisen, die Verarbeitung eines Auftrags fortzusetzen, wenn ein Fehler auftritt, weisen Siefalse
demfailOnError
-Feld desAssemblerOptionSpec
-Objekts zu.
- Erstellen Sie ein
-
Zerlegen Sie das PDF-Dokument.
Rufen Sie die
invokeDDX
-Methode desAssemblerServiceClient
-Objekts auf und übergeben Sie die folgenden Werte:- Ein
BLOB
-Objekt, welches das DDX-Dokument darstellt, das das PDF-Dokument zerlegt - Das
MyMapOf_xsd_string_To_xsd_anyType
-Objekt, welches das zu zerlegende PDF-Dokument enthält - Ein
AssemblerOptionSpec
-Objekt, das Laufzeitoptionen angibt
Die
invokeDDX
-Methode gibt einAssemblerResult
-Objekt zurück, das die Auftragsergebnisse und alle aufgetretenen Ausnahmen enthält. - Ein
-
Speichern Sie die zerlegten PDF-Dokumente.
Führen Sie die folgenden Schritte aus, um die neu erstellten PDF-Dokumente abzurufen:
- Greifen Sie auf das
documents
-Feld desAssemblerResult
-Objekts zu. Dies ist einMap
-Objekt, das die zerlegten PDF-Dokumente enthält. - Iterieren Sie durch das
Map
-Objekt, um alle Zieldokumente abzurufen. Wandeln Sie dannvalue
der Array-Elemente inBLOB
um. - Extrahieren Sie die Binärdaten, die das PDF-Dokument darstellen, indem Sie auf die
MTOM
-Eigenschaft von dessenBLOB
-Objekt zugreifen. Dadurch wird ein Array von Bytes zurückgegeben, die Sie in eine PDF-Datei schreiben können.
- Greifen Sie auf das
Siehe auch
Programmgesteuerte Aufteilung von PDF-Dokumenten
AEM Forms mithilfe von MTOM aufrufen