AEM 6.4 hat das Ende der erweiterten Unterstützung erreicht und diese Dokumentation wird nicht mehr aktualisiert. Weitere Informationen finden Sie in unserer technische Unterstützung. Unterstützte Versionen suchen here.
Sie können ein PDF-Dokument zusammenstellen, das Lesezeichen enthält. Angenommen, Sie verfügen über ein PDF-Dokument, das keine Lesezeichen enthält, und Sie möchten es ändern, indem Sie Lesezeichen hinzufügen. Mithilfe des Assembler-Services können Sie ein PDF-Dokument übergeben, das keine Lesezeichen enthält, und ein PDF-Dokument mit Lesezeichen zurückerhalten.
Lesezeichen enthalten die folgenden Eigenschaften:
Nehmen Sie für dieses Thema bitte 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="FinalDoc.pdf">
<PDF source="Loan.pdf">
<Bookmarks source="doc2" />
</PDF>
</PDF>
</DDX>
Beachten Sie, dass in diesem DDX-Dokument dem Quellattribut der Wert Loan.pdf
zugewiesen ist. Dieses DDX-Dokument gibt an, dass ein einzelnes PDF-Dokument an den Assembler-Service übergeben wird. Beim Zusammenstellen eines PDF-Dokuments mit Lesezeichen müssen Sie ein XML-Lesezeichen-Dokument angeben, das die Lesezeichen im Ergebnisdokument beschreibt. Um ein XML-Dokument mit Lesezeichen anzugeben, stellen Sie sicher, dass in Ihrem DDX-Dokument das Element Bookmarks
angegeben ist.
In diesem DDX-Beispieldokument gibt das Element Bookmarks
den Wert doc2
an. Dieser Wert gibt an, dass die an den Assembler-Service übergebene Eingabezuordnung einen Schlüssel namens doc2
enthält. Der Wert des Schlüssels doc2
ist ein com.adobe.idp.Document
-Wert, der das XML-Lesezeichen-Dokument darstellt. (Siehe „Lesezeichensprache“ in der Referenz zu Assembler-Service und DDX.)
Hier wird die folgende XML-Lesezeichensprache verwendet, um ein PDF-Dokument mit Lesezeichen zusammenzustellen.
<?xml version="1.0" encoding="UTF-8"?>
<Bookmarks xmlns="https://ns.adobe.com/pdf/bookmarks" version="1.0">
<Bookmark>
<Action>
<Launch NewWindow="true">
<File Name="C:\Adobe\LoanDetails.pdf" />
</Launch>
</Action>
<Title>Open the Loan document</Title>
</Bookmark>
<Bookmark>
<Action>
<Launch>
<Win Name="C:\WINDOWS\notepad.exe" />
</Launch>
</Action>
<Title>Launch NotePad</Title>
</Bookmark>
</Bookmarks>
Beachten Sie in diesem XML-Lesezeichen-Dokument das Aktionselement, das die Aktion definiert, die ausgeführt wird, wenn ein Benutzer auf das Lesezeichen klickt. Unter dem Aktionselement befindet sich das Start-Element, das Programme wie NotePad startet und Dateien wie PDF-Dateien öffnet. Um eine PDF-Datei zu öffnen, müssen Sie das Dateielement verwenden, das die zu öffnende Datei angibt. In der in diesem Abschnitt angegebenen XML-Lesezeichen-Datei lautet der Name der geöffneten Datei beispielsweise „LoanDetails.pdf“.
Umfassende Informationen zu unterstützten Aktionen finden Sie unter „Action
-Element“ in der Referenz für Assembler-Service und DDX.
Wenn das in diesem Abschnitt angegebene DDX-Dokument und die XML-Lesezeichen-Datei als Eingabe angegeben werden, stellt der Assembler-Service ein PDF-Dokument zusammen, das die folgenden Lesezeichen enthält.
Wenn ein Benutzer auf das Lesezeichen Öffnen der Darlehensdetails klickt, wird die Datei „LoanDetails.pdf“ geöffnet. Wenn der Benutzer auf das Lesezeichen NotePad starten klickt, wird entsprechend das NotePad gestartet.
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 besprochen, wie das Erstellen eines Sammlungsgegenstands mit Eingabedokumenten oder das Extrahieren der Ergebnisse aus dem zurückgegebenen Sammlungsgegenstand. (Siehe Programmgesteuertes Zusammenstellen von PDF-Dokumenten.)
Weitere Informationen zum Assembler-Service finden Sie in der Service-Referenz für AEM Forms.
Weitere Informationen zu einem DDX-Dokument finden Sie in der Referenz für Assembler-Service und DDX.
Um ein PDF-Dokument zusammenzustellen, das Lesezeichen enthält, führen Sie die folgenden Aufgaben aus:
Einschließen von Projektdateien
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:
Wenn AEM Forms auf einem unterstützten J2EE-Anwendungsserver implementiert ist, der von JBoss verschieden ist, 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 implementiert ist. Informationen zum Speicherort aller AEM Forms-JAR-Dateien finden Sie unter Einbeziehen von AEM Forms-Java-Bibliotheksdateien.
Erstellen eines PDF-Assembler-Clients
Bevor Sie einen Assembler-Vorgang programmgesteuert ausführen können, müssen Sie einen Assembler-Dienst-Client erstellen.
Referenzieren eines bestehenden DDX-Dokuments
Zum Zusammenführen eines PDF-Dokuments muss auf ein DDX-Dokument verwiesen werden. Dieses DDX-Dokument muss das Bookmarks
-Element enthalten, das den Assembler-Service anweist, eine PDF mit Lesezeichen zusammenzustellen. (Ein Beispiel finden Sie im zuvor in diesem Abschnitt gezeigten DDX-Dokument.)
Referenzieren eines PDF-Dokuments, zu dem Lesezeichen hinzugefügt werden
Referenzieren Sie ein PDF-Dokument, zu dem Lesezeichen hinzugefügt werden. Es spielt keine Rolle, ob das referenzierte PDF-Dokument bereits Lesezeichen enthält. Wenn das Element Bookmarks
ein untergeordnetes Element des PDF-Quellelements ist, ersetzen die Lesezeichen die bereits in der PDF-Quelle vorhandenen. Wenn Sie jedoch die schon vorhandenen Lesezeichen beibehalten möchten, stellen Sie sicher, dass Bookmarks
ein gleichrangiges Element des PDF-Quellelements ist. Betrachten Sie etwa das folgende Beispiel:
<PDF result="foo">
<PDF source="inDoc"/>
<Bookmarks source="doc2"/>
</PDF>
Referenzieren des XML-Lesezeichen-Dokuments
Um eine PDF mit neuen Lesezeichen zusammenzustellen, müssen Sie auf ein XML-Lesezeichen-Dokument verweisen. Das XML-Lesezeichen-Dokument wird innerhalb des Zuordnungssammlungsobjekts an den Assembler-Service übergeben. (Ein Beispiel finden Sie im zuvor in diesem Abschnitt gezeigten XML-Lesezeichen-Dokument.)
Siehe „Lesezeichensprache“ in der Referenz zu Assembler-Service und DDX.
Hinzufügen des PDF-Dokuments und des XML-Lesezeichen-Dokuments zu einer Zuordnungssammlung
Sie müssen sowohl das PDF-Dokument, dem Lesezeichen hinzugefügt werden, als auch das XML-Lesezeichen-Dokument zur Zuordnungssammlung hinzufügen. Daher enthält das Zuordnungssammlungsobjekt zwei Elemente: ein PDF-Dokument und das XML-Lesezeichen-Dokument.
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-Service angewiesen wird, die Verarbeitung eines Auftrags fortzusetzen, wenn ein Fehler auftritt. Informationen zu den Laufzeitoptionen, die Sie festlegen können, finden Sie in der AssemblerOptionSpec
-Klassenreferenz in der AEM Forms-API-Referenz.
Zusammenführen des PDF-Dokuments
Verwenden Sie zum Zusammenführen eines PDF-Dokuments, das neue Lesezeichen enthält, den Vorgang invokeDDX
des Assembler-Services. Der Grund, warum Sie die Operation invokeDDX
im Gegensatz zu anderen Operationen des Assembler-Services, wie z. B. invokeOneDocument
, verwenden müssen, ist, dass der Assembler-Service ein XML-Lesezeichen-Dokument benötigt, das innerhalb des Zuordnungssammlungsobjekts übergeben wird. Dieses Objekt ist ein Parameter des Vorgangs invokeDDX
.
Speichern des PDF-Dokuments, das Lesezeichen enthält
Sie müssen die Ergebnisse aus dem zurückgegebenen Zuordnungssammlungsobjekt extrahieren und das entsprechende PDF-Dokument speichern. (Siehe „Extrahieren der Ergebnisse“ in Programmgesteuertes Zusammenstellen von PDF-Dokumenten.)
Siehe auch
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Programmatisches Zusammenstellen von PDF-Dokumenten
So stellen Sie ein PDF-Dokument mit Lesezeichen mithilfe der Assembler-Service-API (Java) zusammen:
Schließen Sie Projektdateien ein.
Fügen Sie Client-JAR-Dateien wie „adobe-assembler-client.jar“ in den Klassenpfad Ihres Java-Projekts ein.
Erstellen Sie einen PDF Assembler-Client.
ServiceClientFactory
-Objekt, das Verbindungseigenschaften enthält. (Siehe Einstellung von Verbindungseigenschaften.)AssemblerServiceClient
-Objekt, indem Sie seinen Konstruktor verwenden und das ServiceClientFactory
-Objekt übergeben.Referenzieren Sie ein vorhandenes DDX-Dokument.
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.com.adobe.idp.Document
-Objekt, indem Sie seinen Konstruktor verwenden und das java.io.FileInputStream
-Objekt übergeben.Referenzieren Sie ein PDF-Dokument, zu dem Lesezeichen hinzugefügt werden.
java.io.FileInputStream
-Objekt, indem Sie seinen Konstruktor verwenden und den Speicherort des PDF-Dokuments übergeben.com.adobe.idp.Document
-Objekt, indem Sie dessen Konstruktor verwenden und das java.io.FileInputStream
-Objekt übergeben, das das PDF-Dokument enthält.Referenzieren Sie das XML-Lesezeichen-Dokument.
java.io.FileInputStream
-Objekt, indem Sie seinen Konstruktor verwenden und den Speicherort der XML-Datei übergeben, die das XML-Lesezeichen-Dokument darstellt.com.adobe.idp.Document
-Objekt und übergeben Sie das java.io.FileInputStream
-Objekt, das das PDF-Dokument enthält.Fügen Sie das PDF-Dokument und das XML-Lesezeichen-Dokument zu einer Zuordnungssammlung hinzu.
Erstellen Sie ein java.util.Map
-Objekt, das zum Speichern sowohl des PDF-Eingabedokuments als auch des XML-Lesezeichen-Dokuments verwendet wird.
Fügen Sie das PDF-Eingabedokument hinzu, indem Sie die Methode put
des java.util.Map
-Objekts aufrufen und die folgenden Argumente übergeben:
com.adobe.idp.Document
-Objekt, das das PDF-Eingabedokument enthält.Fügen Sie das XML-Lesezeichen-Dokument hinzu, indem Sie die Methode put
des java.util.Map
-Objekts aufrufen und die folgenden Argumente übergeben:
com.adobe.idp.Document
-Objekt, das das XML-Lesezeichen-Dokument enthält.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, rufen Sie die Methode setFailOnError
des AssemblerOptionSpec
-Objekts auf und übergeben false
.Stellen Sie das PDF-Dokument zusammen.
Rufen Sie die Methode invokeDDX
des AssemblerServiceClient
-Objekts auf und übergeben Sie die folgenden erforderlichen Werte:
com.adobe.idp.Document
-Objekt, das das zu verwendende DDX-Dokument darstelltjava.util.Map
-Objekt, das sowohl das PDF-Eingabedokument als auch das XML-Lesezeichen-Dokument enthält.com.adobe.livecycle.assembler.client.AssemblerOptionSpec
-Objekt, das die Laufzeitoptionen angibt, einschließlich standardmäßiger Schrift- und AuftragsprotokollebeneDie Methode invokeDDX
gibt ein com.adobe.livecycle.assembler.client.AssemblerResult
-Objekt zurück, das die Ergebnisse des Auftrags und eventuell aufgetretene Ausnahmen enthält.
Speichern Sie das PDF-Dokument, das Lesezeichen enthält.
Führen Sie die folgenden Schritte aus, um das neu erstellte PDF-Dokument abzurufen:
AssemblerResult
-ObjektgetDocuments
-Methode auf. Dadurch wird ein java.util.Map
-Objekt zurückgegeben.java.util.Map
-Objekt, bis Sie das entstandene com.adobe.idp.Document
-Objekt gefunden haben. (Sie können das im DDX-Dokument angegebene PDF-Ergebniselement verwenden, um das Dokument abzurufen.)copyToFile
-Methode des com.adobe.idp.Document
-Objekts auf, um das PDF-Dokument zu extrahieren.Siehe auch
Kurzanleitung (SOAP-Modus): Zusammenstellen von PDF-Dokumenten mit Lesezeichen mithilfe der Java-API
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Erstellen Sie ein PDF-Dokument mit Lesezeichen mithilfe der Assembler-Service-API (Web-Service):
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
mit der 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 aufrufen und einen Zeichenfolgenwert übergeben, der den Dateispeicherort des DDX-Dokuments und den Modus enthält, in dem die Datei geöffnet werden soll.System.IO.FileStream
-Objekt 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 aufrufen und ihr das Byte-Array, die Startposition und die zu lesende Datenstromlänge übergeben.BLOB
-Objekt, indem Sie seinem MTOM
-Feld die Inhalte des Byte-Arrays zuweisen.Referenzieren Sie ein PDF-Dokument, zu dem Lesezeichen hinzugefügt werden.
BLOB
, indem Sie den Konstruktor verwenden. Das BLOB
-Objekt wird zum Speichern des Eingabe-PDF-Dokuments verwendet.System.IO.FileStream
-Objekt, indem Sie seinen Konstruktor aufrufen und einen Zeichenfolgenwert übergeben, der den Dateispeicherort des Eingabe-PDF-Dokuments und den Modus enthält, in dem die Datei geöffnet werden soll.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 aufrufen und ihr das Byte-Array, die Startposition und die zu lesende Datenstromlänge übergeben.BLOB
-Objekt, indem Sie seinem MTOM
-Feld die Inhalte des Byte-Arrays zuweisen.Referenzieren Sie das XML-Lesezeichen-Dokument.
BLOB
, indem Sie den Konstruktor verwenden. Das BLOB
-Objekt wird zum Speichern des XML-Dokuments mit Lesezeichen verwendet.System.IO.FileStream
-Objekt, indem Sie seinen Konstruktor aufrufen und einen Zeichenfolgenwert übergeben, der den Dateispeicherort des Eingabe-PDF-Dokuments und den Modus enthält, in dem die Datei geöffnet werden soll.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 aufrufen und ihr das Byte-Array, die Startposition und die zu lesende Datenstromlänge übergeben.BLOB
-Objekt, indem Sie seinem MTOM
-Feld die Inhalte des Byte-Arrays zuweisen.Fügen Sie das PDF-Dokument und das XML-Lesezeichen-Dokument zu einer Zuordnungssammlung hinzu.
MyMapOf_xsd_string_To_xsd_anyType
-Objekt. Dieses Sammlungsobjekt wird zum Speichern der Eingabe-PDF-Dokumente und des XML-Dokuments mit Lesezeichen verwendet.MyMapOf_xsd_string_To_xsd_anyType_Item
-Objekt.key
-Feld des MyMapOf_xsd_string_To_xsd_anyType_Item
-Objekts einen Zeichenfolgenwert zu, der den Namen des Schlüssels enthält. Dieser Wert muss mit dem Wert des im DDX-Dokument angegebenen PDF-Quellelements übereinstimmen.BLOB
-Objekt, in dem das PDF-Dokument gespeichert wird, 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 Methode Add
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 und das XML-Lesezeichen-Dokument aus.)Legen Sie Laufzeitoptionen fest.
AssemblerOptionSpec
-Objekt, das Laufzeitoptionen speichert, indem Sie seinen Konstruktor verwenden.AssemblerOptionSpec
-Objekt gehört, einen Wert zuweisen. Um beispielsweise den Assembler-Service anzuweisen, die Verarbeitung eines Auftrags fortzusetzen, wenn ein Fehler auftritt, weisen Sie false
dem Datenelement failOnError
des AssemblerOptionSpec
-Objekts zu.Stellen Sie das PDF-Dokument zusammen.
Rufen Sie die Methode invokeDDX
des AssemblerServiceClient
-Objekts auf und übergeben Sie die folgenden Werte:
BLOB
-Objekt, das das DDX-Dokument darstelltMyMapOf_xsd_string_To_xsd_anyType
-Array, das die Eingabedokumente enthältAssemblerOptionSpec
-Objekt, das Laufzeitoptionen angibtDie Methode invokeDDX
gibt ein AssemblerResult
-Objekt zurück, das die Ergebnisse des Vorgangs und alle eventuell aufgetretenen Ausnahmen enthält.
Speichern Sie das PDF-Dokument, das Lesezeichen enthält.
Führen Sie die folgenden Schritte aus, um das neu erstellte PDF-Dokument abzurufen:
documents
des AssemblerResult
-Objekts zu, das ein Map
-Objekt ist, welches die PDF-Ergebnisdokumente enthält.Map
-Objekt, bis Sie den Schlüssel finden, der dem Namen des Ergebnisdokuments entspricht. Dann wandeln Sie den value
dieses Array-Elements in BLOB
um.MTOM
-Feld des BLOB
-Objekts 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