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
.
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 des System.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 das lc_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 Felds AssemblerServiceClient.Endpoint.Binding
abrufen. Wandeln Sie den Rückgabewert in BasicHttpBinding
um.
Legen Sie das MessageEncoding
-Feld des System.ServiceModel.BasicHttpBinding
-Objekts auf WSMessageEncoding.Mtom
fest. Dieser Wert stellt sicher, dass MTOM verwendet wird.
Aktivieren Sie die einfache HTTP-Authentifizierung, indem Sie die folgenden Schritte ausführen:
AssemblerServiceClient.ClientCredentials.UserName.UserName
den AEM Forms-Benutzernamen zu.AssemblerServiceClient.ClientCredentials.UserName.Password
den entsprechenden Passwortwert zu.BasicHttpBindingSecurity.Transport.ClientCredentialType
den konstanten Wert HttpClientCredentialType.Basic
zu.BasicHttpBindingSecurity.Security.Mode
den Konstantenwert BasicHttpSecurityMode.TransportCredentialOnly
zu.Referenzieren Sie ein vorhandenes DDX-Dokument.
BLOB
, indem Sie den Konstruktor verwenden. Das BLOB
-Objekt wird zum Speichern des DDX-Dokuments verwendet.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.System.IO.FileStream
-Objekts speichert. Sie können die Größe des Byte-Arrays bestimmen, indem Sie die Length
-Eigenschaft des System.IO.FileStream
-Objekts abrufen.Read
-Methode des System.IO.FileStream
-Objekts aufrufen und das Byte-Array, die Startposition und die zu lesende Stream-Länge übergeben.BLOB
-Objekt, indem Sie seiner MTOM
-Eigenschaft den Inhalt des Byte-Arrays zuweisen.Referenzieren Sie ein zu zerlegendes PDF-Dokument.
BLOB
, indem Sie den Konstruktor verwenden. Das BLOB
-Objekt wird zum Speichern des PDF-Eingabedokuments verwendet. Dieses BLOB
-Objekt wird an invokeOneDocument
als Argument weitergegeben.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.System.IO.FileStream
-Objekts gespeichert wird. Sie können die Größe des Byte-Arrays bestimmen, indem Sie die Length
-Eigenschaft des System.IO.FileStream
-Objekts abrufen.Read
-Methode des System.IO.FileStream
-Objekts verwenden und das Byte-Array, die Startposition und die zu lesende Stream-Länge übergeben.BLOB
-Objekt, indem Sie seinem MTOM
-Feld die Inhalte des Byte-Arrays zuweisen.MyMapOf_xsd_string_To_xsd_anyType
-Objekts. Dieses Sammlungsobjekt wird verwendet, um das aufzuteilende PDF-Dokument zu speichern.MyMapOf_xsd_string_To_xsd_anyType_Item
-Objekts.key
-Feld des MyMapOf_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.BLOB
-Objekt, welches das PDF-Dokument speichert, dem value
-Feld des MyMapOf_xsd_string_To_xsd_anyType_Item
-Objekts zu.MyMapOf_xsd_string_To_xsd_anyType_Item
-Objekt dem MyMapOf_xsd_string_To_xsd_anyType
-Objekt hinzu. Rufen Sie die MyMapOf_xsd_string_To_xsd_anyType
Objekt Add
-Methode auf und übergeben Sie das MyMapOf_xsd_string_To_xsd_anyType
-Objekt.Legen Sie Laufzeitoptionen fest.
AssemblerOptionSpec
-Objekt, das Laufzeitoptionen speichert, indem Sie seinen Konstruktor verwenden.AssemblerOptionSpec
-Objekt gehört. Um beispielsweise den Assembler-Service anzuweisen, die Verarbeitung eines Auftrags fortzusetzen, wenn ein Fehler auftritt, weisen Sie false
dem failOnError
-Feld des AssemblerOptionSpec
-Objekts zu.Zerlegen Sie das PDF-Dokument.
Rufen Sie die invokeDDX
-Methode des AssemblerServiceClient
-Objekts auf und übergeben Sie die folgenden Werte:
BLOB
-Objekt, welches das DDX-Dokument darstellt, das das PDF-Dokument zerlegtMyMapOf_xsd_string_To_xsd_anyType
-Objekt, welches das zu zerlegende PDF-Dokument enthältAssemblerOptionSpec
-Objekt, das Laufzeitoptionen angibtDie invokeDDX
-Methode gibt ein AssemblerResult
-Objekt zurück, das die Auftragsergebnisse und alle aufgetretenen Ausnahmen enthält.
Speichern Sie die zerlegten PDF-Dokumente.
Führen Sie die folgenden Schritte aus, um die neu erstellten PDF-Dokumente abzurufen:
documents
-Feld des AssemblerResult
-Objekts zu. Dies ist ein Map
-Objekt, das die zerlegten PDF-Dokumente enthält.Map
-Objekt, um alle Zieldokumente abzurufen. Wandeln Sie dann value
der Array-Elemente in BLOB
um.MTOM
-Eigenschaft von dessen BLOB
-Objekt zugreifen. Dadurch wird ein Array von Bytes zurückgegeben, die Sie in eine PDF-Datei schreiben können.Siehe auch
Programmgesteuerte Aufteilung von PDF-Dokumenten
AEM Forms mithilfe von MTOM aufrufen