Zusammenstellen von Dokumenten mithilfe der Bates-Nummerierung assembling-documents-using-bates-numbering

Die Beispiele in diesem Dokument gelten nur für eine AEM Forms on JEE-Umgebung.

Mithilfe der Bates-Nummerierung können Sie PDF-Dokumente zusammenstellen, die eindeutige Seitenkennungen enthalten. Bates-Nummerierung ist eine Methode zur Anwendung von eindeutigen Identifikatoren auf einen Stapel verwandter Dokumente. Jede Seite im Dokument (oder in einer Gruppe von Dokumenten) erhält eine Bates-Nummer, mit der die Seite eindeutig identifiziert wird. Beispielsweise können Fertigungsdokumente, die Materialaufstellungsinformationen enthalten und mit der Herstellung einer Baugruppe verbunden sind, eine Kennung enthalten. Eine Bates-Nummer enthält einen numerischen Wert, der sequenziell inkrementiert wird, sowie ein optionales Präfix und Suffix. Das Präfix + numerisch + Suffix wird als Bates-Muster bezeichnet.

Die folgende Abbildung zeigt ein PDF-Dokument mit einer eindeutigen Kennung in der Kopfzeile des Dokuments.

auaubatesnumber

Für die Zwecke dieser Diskussion wird die eindeutige Seitenkennung in der Kopfzeile eines Dokuments platziert. Angenommen, das folgende DDX-Dokument wird verwendet.

 <?xml version="1.0" encoding="UTF-8"?>
 <DDX xmlns="https://ns.adobe.com/DDX/1.0/">
        <PDF result="out.pdf">
        <Header>
         <Center>
             <StyledText>
                 <p font-size="20pt"><BatesNumber/></p>
             </StyledText>
         </Center>
     </Header>
           <PDF source="map.pdf" />
          <PDF source="directions.pdf" />
          </PDF>
 </DDX>

Dieses DDX-Dokument führt zwei PDF-Dokumente mit dem Namen map.pdf und instructions.pdf in einem einzigen PDF-Dokument zusammen. Das PDF-Zieldokument enthält eine Kopfzeile, die aus einer eindeutigen Seitenkennung besteht. Das Dokument in der obigen Abbildung zeigt beispielsweise 000016.

NOTE
Bevor Sie diesen Abschnitt lesen, sollten Sie sich mit dem Zusammenstellen von PDF-Dokumenten mit dem Assembler-Dienst vertraut machen. In diesem Abschnitt werden die Konzepte nicht erläutert, wie z. B. das Erstellen eines Sammlungsobjekts, das Eingabedokumente enthält, oder das Extrahieren der Ergebnisse aus dem zurückgegebenen Sammlungsobjekt. (Siehe Programmgesteuertes Zusammenstellen von PDF-Dokumenten.)
NOTE
Weitere Informationen zum Assembler-Dienst finden Sie in der Service-Referenz für AEM Forms.
NOTE
Weitere Informationen zu einem DDX-Dokument finden Sie in der Referenz für Assembler-Dienst und DDX.

Zusammenfassung der Schritte summary-of-steps

Um ein PDF-Dokument mit einer eindeutigen Seitenkennung (Bates-Nummerierung) zusammenzustellen, führen Sie die folgenden Schritte aus:

  1. Schließen Sie Projektdateien ein.
  2. Erstellen Sie einen PDF Assembler-Client.
  3. Referenzieren Sie ein vorhandenes DDX-Dokument.
  4. Referenzieren Sie die PDF-Eingabedokumente.
  5. Legen Sie den Anfangswert der Bates-Nummer fest.
  6. Stellen Sie die PDF-Eingabedokumente zusammen.
  7. Extrahieren Sie die Ergebnisse.

Projektdateien einbeziehen

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 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-assembler-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-Programm-Server bereitgestellt wird, bei dem es sich nicht um JBoss handelt, müssen Sie die Dateien „adobe-utilities.jar“ und „jbossall-client.jar“ durch JAR-Dateien ersetzen, die spezifisch für den J2EE-Programm-Server sind, auf dem AEM Forms bereitgestellt wird. Informationen zum Speicherort aller AEM Forms-JAR-Dateien finden Sie unter Einbeziehen von AEM Forms-Java-Bibliotheksdateien.

PDF Assembler-Client erstellen

Bevor Sie einen Assembler-Vorgang programmgesteuert ausführen können, müssen Sie einen Assembler-Dienst-Client erstellen.

Vorhandenes DDX-Dokument referenzieren

Zum Zusammenführen eines PDF-Dokuments muss auf ein DDX-Dokument verwiesen werden. Betrachten Sie beispielsweise das DDX-Dokument, das in diesem Abschnitt eingeführt wurde. Um ein PDF-Dokument zusammenzustellen, das eindeutige Seitenkennungen enthält, muss das DDX-Dokument das Element BatesNumber enthalten.

Referenzieren von PDF-Eingabedokumenten

PDF-Eingabedokumente müssen referenziert werden, um ein PDF-Dokument zusammenzustellen. Beispielsweise müssen die Dokumente „map.pdf“ und „directions.pdf“ referenziert werden, um diese PDF-Dokumente in einem einzigen PDF-Dokument zusammenzustellen.

Festlegen des anfänglichen Bates-Zahlenwerts

Sie können den Anfangswert der Bates-Nummer so festlegen, dass er Ihre Geschäftsanforderungen erfüllt. Angenommen, der Ausgangswert muss auf 000100 gesetzt werden. Wenn Sie den Anfangswert nicht festlegen, lautet der Wert der ersten Seite 000000.

Zusammenstellen der PDF-Eingabedokumente

Nachdem Sie den Assembler-Dienst-Client erstellt haben, das DDX-Dokument referenziert haben, das Informationen zum Element BatesNumber enthält, ein PDF-Eingabedokument referenziert haben und Laufzeitoptionen festgelegt haben, können Sie den Vorgang invokeDDX aufrufen, der dazu führt, dass der Assembler-Dienst ein PDF-Dokument zusammenstellt, welches eindeutige Seitenkennungen enthält.

Extrahieren der Ergebnisse

Der Assembler-Dienst gibt ein Sammlungsobjekt zurück, das die Auftragsergebnisse enthält. Sie können das PDF-Zieldokument und alle ausgelösten Ausnahmen extrahieren. In diesem Fall befindet sich ein verschlüsseltes PDF-Dokument im Sammlungsobjekt.

NOTE
Ein Sammlungsobjekt wird zurückgegeben, wenn Sie den Vorgang invokeDDX aufrufen. Dieser Vorgang wird verwendet, wenn zwei oder mehr PDF-Eingabedokumente an den Assembler-Dienst übergeben werden. Wenn Sie jedoch nur ein PDF-Eingabedokument an den Assembler-Dienst übergeben, sollten Sie den Vorgang invokeOneDocument aufrufen. Weitere Informationen zur Verwendung dieses Vorgangs finden Sie unter Zusammenstellen verschlüsselter PDF-Dokumente.

Siehe auch

Einbeziehung von AEM Forms Java-Bibliotheksdateien

Verbindungseigenschaften festlegen

Programmatisches Zusammenstellen von PDF-Dokumenten

Zusammenstellen von Dokumenten mit Bates-Nummerierung mithilfe der Java-API assemble-documents-with-bates-numbering-using-the-java-api

So stellen Sie mithilfe der Assembler-Dienst-API (Java) ein PDF-Dokument zusammen, das eindeutige Seitenkennungen (Bates-Nummerierung) verwendet:

  1. Schließen Sie Projektdateien ein.

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

  2. Erstellen Sie einen PDF Assembler-Client.

    • Erstellen Sie ein ServiceClientFactory-Objekt, das Verbindungseigenschaften enthält.
    • Erstellen Sie ein AssemblerServiceClient-Objekt, indem Sie seinen Konstruktor verwenden und das ServiceClientFactory-Objekt übergeben.
  3. Referenzieren Sie ein vorhandenes DDX-Dokument.

    • Erstellen Sie ein java.io.FileInputStream-Objekt, das das DDX-Dokument darstellt, indem Sie seinen 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. Referenzieren Sie die PDF-Eingabedokumente.

    • Erstellen Sie mithilfe eines HashMap-Konstruktors ein java.util.Map-Objekt zum Speichern von Eingabe-PDF-Dokumenten.

    • Erstellen Sie für jedes PDF-Eingabedokument ein java.io.FileInputStream-Objekt, indem Sie seinen Konstruktor verwenden und den Speicherort des PDF-Eingabedokuments übergeben. Übergeben Sie in diesem Fall den Speicherort eines ungesicherten PDF-Dokuments.

    • Erstellen Sie für jedes PDF-Eingabedokument ein com.adobe.idp.Document-Objekt und übergeben Sie das java.io.FileInputStream-Objekt, das das PDF-Dokument enthält.

    • Fügen Sie einen Eintrag zu dem java.util.Map-Objekt hinzu, indem Sie seine Methode put aufrufen und die folgenden Argumente übergeben:

      • Eine Zeichenfolge, die den Speichernamen repräsentiert. Dieser Wert muss mit dem Wert des im DDX-Dokument angegebenen PDF-Quellelements übereinstimmen. Der Name der PDF-Quelldatei im DDX-Dokument, das in diesem Abschnitt vorgestellt wird, lautet beispielsweise Loan.pdf.
      • Ein com.adobe.idp.Document-Objekt, das das ungesicherte PDF-Dokument enthält.
  5. Legen Sie den Anfangswert der Bates-Nummer fest.

    • Erstellen Sie ein AssemblerOptionSpec-Objekt, das Laufzeitoptionen mithilfe seines Konstruktors speichert.
    • Legen Sie die anfängliche Bates-Nummer fest, indem Sie die setFirstBatesNumber des AssemblerOptionSpec-Objekts aufrufen und einen numerischen Wert übergeben, der den Anfangswert angibt.
  6. Stellen Sie die PDF-Eingabedokumente zusammen.

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

    • Ein com.adobe.idp.Document-Objekt, das das DDX-Dokument darstellt.
    • Ein java.util.Map-Objekt, das die ungesicherte PDF-Eingabedatei enthält.
    • Ein com.adobe.livecycle.assembler.client.AssemblerOptionSpec-Objekt, das die Laufzeitoptionen angibt, einschließlich der standardmäßigen Schriftart und Auftragslog-Ebene.

    Die invokeDDX-Methode gibt ein com.adobe.livecycle.assembler.client.AssemblerResult-Objekt zurück, das ein kennwortverschlüsseltes PDF-Dokument enthält.

  7. Extrahieren Sie die Ergebnisse.

    Führen Sie die folgenden Schritte aus, um das neu erstellte PDF-Dokument abzurufen:

    • Rufen Sie die Methode getDocuments des AssemblerResult-Objekts auf. Diese Aktion gibt ein java.util.Map-Objekt zurück.
    • Gehen Sie schrittweise durch das java.util.Map-Objekt, bis Sie das com.adobe.idp.Document-Objekt finden.
    • Rufen Sie die Methode copyToFile des Objekts com.adobe.idp.Document auf, um das PDF-Dokument zu extrahieren.

Siehe auch

Schnellstart (SOAP-Modus): Zusammenstellen eines PDF-Dokuments mit Bates-Nummerierung mithilfe der Java-API

Einbeziehung von AEM Forms Java-Bibliotheksdateien

Verbindungseigenschaften festlegen

Zusammenstellen von Dokumenten mit Bates-Nummerierung unter Verwendung der Webservice-API assemble-documents-with-bates-numbering-using-the-web-service-api

Stellen Sie mithilfe der Assembler-Dienst-API (Web-Service) ein PDF-Dokument zusammen, das eindeutige Seitenkennungen (Bates-Nummerierung) verwendet:

  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.

    note
    NOTE
    Ersetzen Sie localhost mit der IP-Adresse des Servers, auf dem AEM Forms gehostet wird.
  2. 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, indem Sie den System.ServiceModel.EndpointAddress-Konstruktor verwenden. Übergeben Sie einen Zeichenfolgenwert mit der WSDL an den AEM Forms-Service (z. B. http://localhost:8080/soap/services/AssemblerService?blob=mtom). Sie brauchen das Attribut lc_version nicht zu verwenden. Dieses Attribut wird verwendet, wenn Sie einen Service-Verweis 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.

    • Stellen Sie das Feld MessageEncoding des Objekts System.ServiceModel.BasicHttpBinding auf WSMessageEncoding.Mtom ein. 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 Wert HttpClientCredentialType.Basic zu.
      • Weisen Sie den konstanten Wert BasicHttpSecurityMode.TransportCredentialOnly dem Feld BasicHttpBindingSecurity.Security.Mode zu.
  3. Referenzieren Sie 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 Objekt System.IO.FileStream, indem Sie den Konstruktor aufrufen und einen String-Wert übergeben, der den Dateispeicherort des DDX-Dokuments und den Modus, in dem die Datei geöffnet werden soll, repräsentiert.
    • 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 ermitteln, indem Sie die Eigenschaft Length des Objekts System.IO.FileStream abrufen.
    • Füllen Sie das Byte-Array mit Stream-Daten auf, indem Sie die Methode Read des System.IO.FileStream-Objekts aufrufen. Übergeben Sie das Byte-Array, die Startposition und die zu lesende Datenstromlänge.
    • Füllen Sie das BLOB-Objekt, indem Sie seinem Feld MTOM den Inhalt des Byte-Arrays zuweisen.
  4. Referenzieren Sie die PDF-Eingabedokumente.

    • Erstellen Sie für jedes PDF-Eingabedokument ein BLOB-Objekt, indem Sie seinen Konstruktor verwenden. Das BLOB-Objekt wird zum Speichern des PDF-Eingabedokuments verwendet.
    • Erstellen Sie ein System.IO.FileStream-Objekt, indem Sie dessen Konstruktor aufrufen. Übergeben Sie einen Zeichenfolgenwert, der den Speicherort des PDF-Eingabedokuments und den Modus darstellt, in dem die Datei geöffnet werden soll.
    • 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 ermitteln, indem Sie die Eigenschaft Length des Objekts System.IO.FileStream abrufen.
    • Füllen Sie das Byte-Array mit Stream-Daten auf, indem Sie die Methode Read des System.IO.FileStream-Objekts aufrufen. Übergeben Sie das Byte-Array, die Startposition und die zu lesende Datenstromlänge.
    • Befüllen Sie das BLOB-Objekt, indem Sie seiner MTOM-Eigenschaft den Inhalt des Byte-Arrays zuweisen.
    • Erstellen Sie ein Objekt MyMapOf_xsd_string_To_xsd_anyType. Dieses Sammlungsobjekt wird zum Speichern der PDF-Eingabedokumente verwendet.
    • Erstellen Sie für jedes PDF-Eingabedokument ein MyMapOf_xsd_string_To_xsd_anyType_Item-Objekt. Wenn beispielsweise zwei PDF-Eingabedokumente verwendet werden, erstellen Sie zwei MyMapOf_xsd_string_To_xsd_anyType_Item-Objekte.
    • Weisen Sie dem Feld key des MyMapOf_xsd_string_To_xsd_anyType_Item-Objekts einen Zeichenfolgenwert zu, der den Schlüsselnamen darstellt. Dieser Wert muss mit dem Wert des im DDX-Dokument angegebenen PDF-Quellelements übereinstimmen. (Führen Sie diese Aufgabe für jedes PDF-Eingabedokument aus.)
    • Weisen Sie das BLOB-Objekt, das das PDF-Dokument speichert, dem Feld value des MyMapOf_xsd_string_To_xsd_anyType_Item-Objekts zu. (Führen Sie diese Aufgabe für jedes PDF-Eingabedokument aus.)
    • Fügen Sie das MyMapOf_xsd_string_To_xsd_anyType_Item-Objekt dem MyMapOf_xsd_string_To_xsd_anyType-Objekt zu. Rufen Sie die Add-Methode des MyMapOf_xsd_string_To_xsd_anyType-Objekts auf, und übergeben Sie das MyMapOf_xsd_string_To_xsd_anyType-Objekt. (Führen Sie diese Aufgabe für jedes PDF-Eingabedokument aus.)
  5. Legen Sie den Anfangswert der Bates-Nummer fest.

    • Erstellen Sie ein AssemblerOptionSpec-Objekt, das Laufzeitoptionen mithilfe seines Konstruktors speichert.
    • Legen Sie die anfängliche Bates-Nummer fest, indem Sie dem Datenelement firstBatesNumber, das zum AssemblerOptionSpec-Objekt gehört, einen numerischen Wert zuweisen.
  6. Stellen Sie die PDF-Eingabedokumente zusammen.

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

    • Ein BLOB-Objekt, das das DDX-Dokument darstellt.
    • das MyMapOf_xsd_string_To_xsd_anyType-Objekt, das die PDF-Eingabedokumente enthält. Seine Schlüssel müssen mit den Namen der PDF-Quelldateien übereinstimmen, und seine Werte müssen die BLOB-Objekte sein, die diesen Dateien entsprechen.
    • Ein AssemblerOptionSpec-Objekt, das Laufzeitoptionen angibt.

    Die Methode invoke gibt ein AssemblerResult-Objekt zurück, das die Ergebnisse des Auftrags und eventuell aufgetretene Ausnahmen enthält.

  7. Extrahieren Sie die Ergebnisse.

    Führen Sie die folgenden Schritte aus, um das neu erstellte PDF-Dokument abzurufen:

    • Greifen Sie auf das Feld documents des AssemblerResult-Objekts zu, das ein Map-Objekt ist, das die PDF-Ergebnisdokumente enthält.
    • Iterieren Sie durch das Map-Objekt, bis Sie den Schlüssel finden, der dem Namen des Ergebnisdokuments entspricht. Anschließend wandeln Sie den value dieses Array-Mitglieds in ein BLOB um.
    • Extrahieren Sie die Binärdaten, die das PDF-Dokument darstellen, indem Sie auf die Eigenschaft MTOM des Objekts BLOB zugreifen. Dadurch wird ein Array von Bytes zurückgegeben, die Sie in eine PDF-Datei schreiben können.

Siehe auch

AEM Forms mithilfe von MTOM aufrufen

recommendation-more-help
experience-manager-65-help-main-toc