Aufteilen eines PDF-Dokuments mithilfe der Webdienst-API

Beispiele und Beispiele in diesem Dokument gelten nur für die Umgebung AEM Forms on JEE.

Disassemblieren eines PDF-Dokuments mithilfe der Assembler-Dienst-API (Webdienst):

  1. Schließen Sie Projektdateien ein.

    Erstellen Sie ein Microsoft .NET-Projekt, das MTOM verwendet. Stellen Sie sicher, dass Sie beim Festlegen einer Dienstreferenz die folgende WSDL-Definition verwenden: http://localhost:8080/soap/services/AssemblerService?WSDL&lc_version=9.0.1.

    HINWEIS

    Ersetzen Sie localhost durch die IP-Adresse des Servers, auf dem AEM Forms gehostet wird.

  2. Erstellen Sie einen PDF Assembler-Client.

    • Erstellen Sie ein AssemblerServiceClient-Objekt mit dem Standardkonstruktor.

    • Erstellen Sie ein AssemblerServiceClient.Endpoint.Address-Objekt mit dem Konstruktor System.ServiceModel.EndpointAddress. Übergeben Sie einen Zeichenfolgenwert, der den WSDL-Wert an den AEM Forms-Dienst angibt (z. B. http://localhost:8080/soap/services/AssemblerService?blob=mtom). Sie müssen das Attribut lc_version nicht verwenden. Dieses Attribut wird verwendet, wenn Sie eine Dienstreferenz erstellen.

    • Erstellen Sie ein System.ServiceModel.BasicHttpBinding-Objekt, indem Sie den Wert des Felds AssemblerServiceClient.Endpoint.Binding abrufen. Wandeln Sie den Rückgabewert in BasicHttpBinding um.

    • Setzen Sie das Feld System.ServiceModel.BasicHttpBinding des Objekts auf MessageEncoding. WSMessageEncoding.Mtom 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 AssemblerServiceClient.ClientCredentials.UserName.UserName den AEM Forms-Benutzernamen zu.
      • Weisen Sie dem Feld AssemblerServiceClient.ClientCredentials.UserName.Password den entsprechenden Kennwortwert zu.
      • Weisen Sie dem Feld BasicHttpBindingSecurity.Transport.ClientCredentialType den Konstantenwert HttpClientCredentialType.Basic zu.
      • Weisen Sie dem Feld BasicHttpBindingSecurity.Security.Mode den Konstantenwert BasicHttpSecurityMode.TransportCredentialOnly zu.
  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. Übergeben Sie einen Zeichenfolgenwert, der den Dateispeicherort des DDX-Dokuments und den Dateimodus darstellt, in dem die Datei geöffnet werden soll.
    • Erstellen Sie ein Bytearray, das den Inhalt des Objekts System.IO.FileStream speichert. Sie können die Größe des Byte-Arrays bestimmen, indem Sie die System.IO.FileStream-Eigenschaft des Objekts Length abrufen.
    • Füllen Sie das Bytearray mit Stream-Daten, indem Sie die Read-Methode des Objekts aufrufen und das Bytearray, die Startposition und die zu lesende Stream-Länge übergeben.System.IO.FileStream
    • Füllen Sie das BLOB-Objekt, indem Sie seine MTOM-Eigenschaft mit dem Inhalt des Byte-Arrays zuweisen.
  4. Verweisen Sie auf ein zu zerlegendes 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 Argument an das invokeOneDocument-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 Dateimodus darstellt, in dem die Datei geöffnet werden soll.
    • Erstellen Sie ein Bytearray, das den Inhalt des Objekts System.IO.FileStream speichert. Sie können die Größe des Byte-Arrays bestimmen, indem Sie die System.IO.FileStream-Eigenschaft des Objekts Length abrufen.
    • Füllen Sie das Bytearray mit Stream-Daten, indem Sie die Read-Methode des Objekts aufrufen und das Bytearray, die Startposition und die zu lesende Stream-Länge übergeben.System.IO.FileStream
    • Füllen Sie das BLOB-Objekt, indem Sie dessen MTOM-Feld den Inhalt des Byte-Arrays zuweisen.
    • Erstellen Sie ein MyMapOf_xsd_string_To_xsd_anyType-Objekt. Dieses Collection-Objekt wird zum Speichern der PDF-Datei für die Auflösung verwendet.
    • Erstellen Sie ein MyMapOf_xsd_string_To_xsd_anyType_Item-Objekt.
    • Weisen Sie dem Feld MyMapOf_xsd_string_To_xsd_anyType_Item des Objekts einen Zeichenfolgenwert zu, der den Schlüsselnamen darstellt. key Dieser Wert muss mit dem Wert des im DDX-Dokument angegebenen PDF-Quellelements übereinstimmen.
    • Weisen Sie das BLOB-Objekt, in dem das PDF-Dokument gespeichert wird, dem MyMapOf_xsd_string_To_xsd_anyType_Item-Objektfeld value zu.
    • hinzufügen Sie das MyMapOf_xsd_string_To_xsd_anyType_Item-Objekt mit dem MyMapOf_xsd_string_To_xsd_anyType-Objekt. Rufen Sie die MyMapOf_xsd_string_To_xsd_anyType-Methode "Add"auf und übergeben Sie das MyMapOf_xsd_string_To_xsd_anyType-Objekt.
  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 false dem AssemblerOptionSpec-Objektfeld failOnError zu.
  6. Disassemblieren des PDF-Dokuments.

    Rufen Sie die invokeDDX-Methode des Objekts auf und übergeben Sie die folgenden Werte:AssemblerServiceClient

    • Ein BLOB-Objekt, das das DDX-Dokument darstellt, das das PDF-Dokument disassassassassembliert
    • Das MyMapOf_xsd_string_To_xsd_anyType-Objekt, das das zu zerlegende PDF-Dokument enthält
    • Ein AssemblerOptionSpec-Objekt, das Laufzeitoptionen angibt

    Die invokeDDX-Methode gibt ein AssemblerResult-Objekt zurück, das die Auftragsergebnisse und alle aufgetretenen Ausnahmen enthält.

  7. Speichern Sie die zerlegten PDF-Dokumente.

    So rufen Sie die neu erstellten PDF-Dokumente ab:

    • Greifen Sie auf das Feld AssemblerResult des Objekts zu, bei dem es sich um ein Map-Objekt handelt, das die zerlegten PDF-Dokumente enthält.documents
    • Durchlaufen Sie das Map-Objekt, um jedes resultierende Dokument abzurufen. Anschließend können Sie die value des Array-Mitglieds in ein BLOB-Element umwandeln.
    • Extrahieren Sie die Binärdaten, die das PDF-Dokument darstellen, indem Sie auf die BLOB-Eigenschaft des Objekts MTOM zugreifen. Dadurch wird ein Bytearray zurückgegeben, das Sie in eine PDF-Datei schreiben können.

Siehe auch

Programmatische Demontage von PDF-Dokumenten

Aufrufen von AEM Forms mit MTOM

Auf dieser Seite

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now