Hinzufügen von Signaturfeldern
Digitale Signaturen werden in Signaturfeldern angezeigt, bei denen es sich um Formularfelder handelt, die eine grafische Darstellung der Signatur enthalten. Signaturfelder können sichtbar oder unsichtbar sein. Unterzeichnende können ein bereits vorhandenes Signaturfeld verwenden, oder ein Signaturfeld kann programmgesteuert hinzugefügt werden. In beiden Fällen muss das Signaturfeld vorhanden sein, bevor ein PDF-Dokument signiert werden kann.
Sie können ein Signaturfeld programmgesteuert hinzufügen, indem Sie die Signature-Dienst-Java-API oder die Signature-Webdienst-API verwenden. Sie können mehr als ein Signaturfeld zu einem PDF-Dokument hinzufügen. Jeder Signaturfeldname muss jedoch eindeutig sein.
Zusammenfassung der Schritte
Um ein Signaturfeld zu einem PDF-Dokument hinzuzufügen, führen Sie die folgenden Schritte aus:
- Schließen Sie Projektdateien ein.
- Erstellen Sie einen Signatur-Client.
- Rufen Sie ein PDF-Dokument ab, dem ein Signaturfeld hinzugefügt wird.
- Fügen Sie ein Signaturfeld hinzu.
- Speichern Sie das Formular als PDF-Datei.
Einschließen von Projektdateien
Schließen Sie die erforderlichen Dateien in Ihr Entwicklungsprojekt ein. Wenn Sie ein Client-Programm 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-signatures-client.jar
- adobe-utilities.jar (erforderlich, wenn AEM Forms auf JBoss bereitgestellt wird)
- jbossall-client.jar (erforderlich, wenn AEM Forms auf JBoss bereitgestellt wird)
Erstellen eines Signatur-Clients
Bevor Sie einen Signature-Service-Vorgang programmgesteuert ausführen können, müssen Sie einen Signature-Service-Client erstellen.
Abrufen eines PDF-Dokuments, dem ein Signaturfeld hinzugefügt wird
Abrufen eines PDF-Dokuments, dem ein Signaturfeld hinzugefügt wurde.
Hinzufügen eines Signaturfelds
Um einem PDF-Dokument erfolgreich ein Signaturfeld hinzuzufügen, geben Sie Koordinatenwerte an, die die Position des Signaturfelds angeben. (Wenn Sie ein unsichtbares Signaturfeld hinzufügen, sind diese Werte nicht erforderlich.) Außerdem können Sie angeben, welche Felder im PDF-Dokument gesperrt werden, nachdem eine Signatur auf das Signaturfeld angewendet wurde.
Speichern des PDF-Dokuments als PDF-Datei
Nachdem der Signatur-Service ein Signaturfeld zum PDF-Dokument hinzugefügt hat, können Sie das Dokument als PDF-Datei speichern, damit Benutzer es in Acrobat oder Adobe Reader öffnen können.
Siehe auch
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Hinzufügen von Signaturfeldern mithilfe der Java-API
Fügen Sie mithilfe der Signature-API (Java) ein Signaturfeld hinzu:
-
Projektdateien einschließen
Schließen Sie Client-JAR-Dateien, beispielsweise „adobe-signatures-client.jar“, in den Klassenpfad Ihres Java-Projekts ein.
-
Erstellen eines Signatur-Clients
- Erstellen Sie ein
ServiceClientFactory
-Objekt, das Verbindungseigenschaften enthält. - Erstellen Sie ein
SignatureServiceClient
-Objekt, indem Sie seinen Konstruktor verwenden und dasServiceClientFactory
-Objekt übergeben.
- Erstellen Sie ein
-
Abrufen eines PDF-Dokuments, dem ein Signaturfeld hinzugefügt wurde
- Erstellen Sie ein
java.io.FileInputStream
-Objekt, das das PDF-Dokument darstellt, dem ein Signaturfeld hinzugefügt wird. Verwenden Sie dazu seinen Konstruktor und übergeben Sie einen Zeichenfolgenwert, der den Speicherort des PDF-Dokuments angibt. - Erstellen Sie ein
com.adobe.idp.Document
-Objekt, indem Sie seinen Konstruktor verwenden und dasjava.io.FileInputStream
-Objekt übergeben.
- Erstellen Sie ein
-
Hinzufügen eines Signaturfeldes
-
Erstellen Sie ein
PositionRectangle
-Objekt, das die Position des Signaturfelds angibt, indem Sie seinen Konstruktor verwenden. Geben Sie im Konstruktor Koordinatenwerte an. -
Erstellen Sie bei Bedarf ein
FieldMDPOptions
-Objekt, das die Felder angibt, die gesperrt werden, wenn eine digitale Signatur auf das Signaturfeld angewendet wird. -
Fügen Sie ein Signaturfeld zu einem PDF-Dokument hinzu, indem Sie die Methode
addSignatureField
desSignatureServiceClient
-Objekts verwenden und die folgenden Werte übergeben:- A
com.adobe.idp
.Document
-Objekt, das das PDF-Dokument darstellt, dem ein Signaturfeld hinzugefügt wird. - Ein Zeichenfolgenwert, der den Namen des Signaturfelds angibt.
- Ein
java.lang.Integer
-Wert, der die Seitenzahl der Seite darstellt, zu der ein Signaturfeld hinzugefügt wird. - Ein
PositionRectangle
-Objekt, das die Position des Signaturfelds angibt. - Ein
FieldMDPOptions
-Objekt, das Felder im PDF-Dokument angibt, die gesperrt werden, nachdem eine digitale Signatur auf das Signaturfeld angewendet wurde. Dieser Parameterwert ist optional und Sie könnennull
übergeben.
- A
-
Ein
PDFSeedValueOptions
-Objekt, das verschiedene Laufzeitwerte angibt. Dieser Parameterwert ist optional und Sie könnennull
übergeben.Die Methode
addSignatureField
gibt eincom.adobe.idp
zurück. EinDocument
-Objekt, das ein PDF-Dokument mit einem Signaturfeld darstellt.
HINWEIS
Sie können die MethodeaddInvisibleSignatureField
desSignatureServiceClient
-Objekts zum Hinzufügen eines unsichtbaren Signaturfelds aufrufen. -
-
Das PDF-Dokument als PDF-Datei speichern
- Erstellen Sie ein
java.io.File
-Objekt und stellen Sie sicher, dass die Dateierweiterung .pdf ist. - Rufen Sie die
com.adobe.idp
Rufen Sie die MethodecopyToFile
desDocument
-Objekts auf, um den Inhalt desDocument
-Objekts in die Datei zu kopieren. Stellen Sie sicher, dass Sie dascom.adobe.idp
Document
-Objekt verwenden, das von deraddSignatureField
-Methode zurückgegeben wurde.
- Erstellen Sie ein
Siehe auch
Hinzufügen von Signaturfeldern mit der Webdienst-API
So fügen Sie mithilfe der Signature-API (Webdienst) ein Signaturfeld hinzu:
-
Projektdateien einschließen
Erstellen Sie ein Microsoft .NET-Projekt, das MTOM verwendet. Stellen Sie sicher, dass Sie die folgende WSDL-Definition verwenden:
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.HINWEIS
Ersetzen Sielocalhost
durch die IP-Adresse des Servers, auf dem AEM Forms gehostet wird. -
Erstellen eines Signatur-Clients
-
Erstellen Sie mithilfe des betreffenden Standardkonstruktors ein
SignatureServiceClient
-Objekt. -
Erstellen Sie mithilfe des
System.ServiceModel.EndpointAddress
-Konstruktors einSignatureServiceClient.Endpoint.Address
-Objekt. Übergeben Sie einen Zeichenfolgenwert, der die WSDL für den AEM Forms-Service angibt (z. B.http://localhost:8080/soap/services/SignatureService?WSDL
). Das Attributlc_version
muss nicht verwendet werden. Dieses Attribut wird verwendet, wenn Sie einen Service-Verweis erstellen.) -
Erstellen Sie ein
System.ServiceModel.BasicHttpBinding
-Objekt durch Abrufen des Werts des FeldsSignatureServiceClient.Endpoint.Binding
. Wandeln Sie den Rückgabewert inBasicHttpBinding
um. -
Stellen Sie das Feld
MessageEncoding
des ObjektsSystem.ServiceModel.BasicHttpBinding
aufWSMessageEncoding.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
SignatureServiceClient.ClientCredentials.UserName.UserName
den AEM Forms-Benutzernamen zu. - Weisen Sie dem Feld
SignatureServiceClient.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 konstanten WertBasicHttpSecurityMode.TransportCredentialOnly
zu.
- Weisen Sie dem Feld
-
-
Abrufen eines PDF-Dokuments, dem ein Signaturfeld hinzugefügt wurde
- Erstellen Sie ein Objekt
BLOB
, indem Sie den Konstruktor verwenden. DasBLOB
-Objekt wird zum Speichern des PDF-Dokuments verwendet, das ein Signaturfeld enthalten wird. - Erstellen Sie ein
System.IO.FileStream
-Objekt, indem Sie seinen Konstruktor aufrufen und einen Zeichenfolgewert übergeben, der den Dateispeicherort des PDF-Dokuments und den Modus, in dem die Datei geöffnet werden soll, darstellt. - Erstellen Sie ein Byte-Array, das den Inhalt des
System.IO.FileStream
-Objekts speichert. Sie können die Größe des Byte-Arrays ermitteln, indem Sie die EigenschaftLength
des ObjektsSystem.IO.FileStream
abrufen. - Füllen Sie das Byte-Array mit Stream-Daten auf, indem Sie die Methode
Read
des ObjektsSystem.IO.FileStream
verwenden und das Byte-Array, die Startposition und die zu lesende Stream-Länge weitergeben. - Füllen Sie das
BLOB
-Objekt, indem Sie seinerMTOM
-Eigenschaft den Inhalt des Byte-Arrays zuweisen.
- Erstellen Sie ein Objekt
-
Hinzufügen eines Signaturfeldes
Fügen Sie ein Signaturfeld zum PDF-Dokument hinzu, indem Sie die Methode
addSignatureField
desSignatureServiceClient
-Objekts aufrufen und die folgenden Werte übergeben:- Ein
BLOB
-Objekt, welches das PDF-Dokument darstellt, dem ein Signaturfeld hinzugefügt werden soll. - Ein Zeichenkettenwert, der den Namen des Signaturfeldes angibt.
- Ein Integer-Wert, der die Seitenzahl angibt, zu der ein Signaturfeld hinzugefügt wird.
- Ein
PositionRect
-Objekt, das den Speicherort des Signaturfelds angibt. - Ein
FieldMDPOptions
-Objekt, das Felder im PDF-Dokument angibt, die gesperrt werden, nachdem eine digitale Signatur auf das Signaturfeld angewendet wurde. Dieser Parameterwert ist optional und Sie könnennull
übergeben. - Ein
PDFSeedValueOptions
-Objekt, das verschiedene Laufzeitwerte angibt. Dieser Parameterwert ist optional und Sie könnennull
übergeben.
Die
addSignatureField
-Methode gibt einBLOB
-Objekt zurück, das ein mit einem Signaturfeld versehenes PDF-Dokument darstellt. - Ein
-
Das PDF-Dokument als PDF-Datei speichern
- Erstellen Sie ein
System.IO.FileStream
-Objekt, indem Sie seinen Konstruktor aufrufen und einen Zeichenfolgewert übergeben, der den Dateispeicherort des PDF-Dokuments, welches das Signaturfeld enthalten soll, und den Modus, in dem die Datei geöffnet werden soll, darstellt. - Erstellen Sie ein Byte-Array, das den Inhalt des
BLOB
-Objekts speichert, das von deraddSignatureField
-Methode zurückgegeben wurde. Füllen Sie das Byte-Array, indem Sie den Wert des DatenelementsbinaryData
desBLOB
-Objekts abrufen. - Erstellen Sie ein
System.IO.BinaryWriter
-Objekt, indem Sie seinen Konstruktor aufrufen und dasSystem.IO.FileStream
-Objekt übergeben. - Schreiben Sie den Inhalt des Byte-Arrays in eine PDF-Datei, indem Sie die Methode
Write
desSystem.IO.BinaryWriter
-Objekts aufrufen und das Byte-Array übergeben.
- Erstellen Sie ein
Abrufen von Signaturfeldnamen
Sie können die Namen aller Signaturfelder abrufen, die sich in einem PDF-Dokument befinden, das Sie signieren oder zertifizieren möchten. Wenn Sie sich nicht sicher sind, welche Signaturfeldnamen sich in einem PDF-Dokument befinden, oder die Namen überprüfen möchten, können Sie sie programmgesteuert abrufen. Der Signature-Dienst gibt den vollqualifizierten Namen des Signaturfelds zurück, z. B. form1[0].grantApplication[0].page1[0].SignatureField1[0]
.
Zusammenfassung der Schritte
Um Signaturfeldnamen abzurufen, führen Sie die folgenden Aufgaben aus:
- Schließen Sie Projektdateien ein.
- Erstellen Sie einen Signatur-Client.
- Rufen Sie das PDF-Dokument ab, das Signaturfelder enthält.
- Rufen Sie die Namen der Signaturfelder ab.
Binden Sie Projektdateien ein
Schließen Sie die erforderlichen Dateien in Ihr Entwicklungsprojekt ein. Wenn Sie ein Client-Programm 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-signatures-client.jar
- adobe-utilities.jar (erforderlich, wenn AEM Forms auf JBoss bereitgestellt wird)
- jbossall-client.jar (erforderlich, wenn AEM Forms auf JBoss bereitgestellt wird)
Informationen zum Speicherort dieser JAR-Dateien finden Sie unter Einbeziehen von AEM Forms-Java-Bibliotheksdateien.
Erstellen eines Signature-Clients
Bevor Sie einen Signature-Service-Vorgang programmgesteuert ausführen können, müssen Sie einen Signature-Service-Client erstellen.
Abrufen des PDF-Dokuments, das Signaturfelder enthält
Rufen Sie ein PDF-Dokument ab, das Signaturfelder enthält.
Abrufen von Signaturfeldnamen
Sie können die Namen von Signaturfeldern abrufen, nachdem Sie ein PDF-Dokument abgerufen haben, das ein oder mehrere Signaturfelder enthält.
Siehe auch
Abrufen von Signaturfeldnamen mit der Java-API
Abrufen von Signaturfeldern mit der Webdienst-API
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Abrufen von Signaturfeldnamen mit der Java-API
Abrufen von Signaturfeldnamen mithilfe der Signature-API (Java):
-
Projektdateien einschließen
Fügen Sie Client-JAR-Dateien, beispielsweise „adobe-livecycle-client.jar“, in den Klassenpfad Ihres Java-Projekts ein.
-
Erstellen eines Signatur-Clients
- Erstellen Sie ein
ServiceClientFactory
-Objekt, das Verbindungseigenschaften enthält. - Erstellen Sie ein
SignatureServiceClient
-Objekt, indem Sie seinen Konstruktor verwenden und dasServiceClientFactory
-Objekt übergeben.
- Erstellen Sie ein
-
Abrufen des PDF-Dokuments, das Signaturfelder enthält
- Erstellen Sie ein
java.io.FileInputStream
-Objekt, welches das PDF-Dokument darstellt, das Signaturfelder enthält, indem Sie seinen Konstruktor verwenden und einen Zeichenfolgenwert übergeben, der den Speicherort des PDF-Dokuments angibt. - Erstellen Sie ein
com.adobe.idp.Document
-Objekt, indem Sie seinen Konstruktor verwenden und dasjava.io.FileInputStream
-Objekt übergeben.
- Erstellen Sie ein
-
Abrufen der Signaturfeldnamen
- Rufen Sie die Namen der Signaturfelder ab, indem Sie die Methode
getSignatureFieldList
desSignatureServiceClient
-Objekts aufrufen und dascom.adobe.idp.Document
-Objekt übergeben, das das PDF-Dokument mit den Signaturfeldern enthält. Diese Methode gibt einejava.util.List
-Objekt zurück, in dem jedes Element einePDFSignatureField
-Objekt enthält. Mit diesem Objekt können Sie zusätzliche Informationen zu einem Signaturfeld abrufen, beispielsweise ob es sichtbar ist. - Iterieren Sie durch das
java.util.List
-Objekt, um festzustellen, ob es Signaturfeldnamen gibt. Für jedes Signaturfeld im PDF-Dokument können Sie ein separatesPDFSignatureField
-Objekt erhalten. Um den Namen des Signaturfelds zu erhalten, rufen Sie die MethodegetName
desPDFSignatureField
-Objekts auf. Diese Methode gibt einen Zeichenfolgenwert zurück, der den Signaturfeldnamen angibt.
- Rufen Sie die Namen der Signaturfelder ab, indem Sie die Methode
Abrufen von Signaturfeldern mit der Webdienst-API
Rufen Sie Signaturfeldnamen mit der Signature-API (Webdienst) ab:
-
Projektdateien einschließen
Erstellen Sie ein Microsoft .NET-Projekt, das MTOM verwendet. Stellen Sie sicher, dass Sie die folgende WSDL-Definition verwenden:
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.HINWEIS
Ersetzen Sielocalhost
durch die IP-Adresse des Servers, auf dem AEM Forms gehostet wird. -
Erstellen eines Signatur-Clients
-
Erstellen Sie mithilfe des betreffenden Standardkonstruktors ein
SignatureServiceClient
-Objekt. -
Erstellen Sie mithilfe des
System.ServiceModel.EndpointAddress
-Konstruktors einSignatureServiceClient.Endpoint.Address
-Objekt. Übergeben Sie einen Zeichenfolgenwert, der die WSDL für den AEM Forms-Service angibt (z. B.http://localhost:8080/soap/services/SignatureService?WSDL
). Das Attributlc_version
muss nicht verwendet werden. Dieses Attribut wird verwendet, wenn Sie einen Service-Verweis erstellen.) -
Erstellen Sie ein
System.ServiceModel.BasicHttpBinding
-Objekt durch Abrufen des Werts des FeldsSignatureServiceClient.Endpoint.Binding
. Wandeln Sie den Rückgabewert inBasicHttpBinding
um. -
Stellen Sie das Feld
MessageEncoding
des ObjektsSystem.ServiceModel.BasicHttpBinding
aufWSMessageEncoding.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
SignatureServiceClient.ClientCredentials.UserName.UserName
den AEM Forms-Benutzernamen zu. - Weisen Sie dem Feld
SignatureServiceClient.ClientCredentials.UserName.Password
den entsprechenden Passwortwert zu. - Weisen Sie dem Feld
BasicHttpBindingSecurity.Transport.ClientCredentialType
den konstanten WertHttpClientCredentialType.Basic
zu. - Weisen Sie den konstanten Wert
BasicHttpSecurityMode.TransportCredentialOnly
dem FeldBasicHttpBindingSecurity.Security.Mode
zu.
- Weisen Sie dem Feld
-
-
Abrufen des PDF-Dokuments, das Signaturfelder enthält
- Erstellen Sie ein Objekt
BLOB
, indem Sie den Konstruktor verwenden. DasBLOB
-Objekt wird zum Speichern des PDF-Dokuments verwendet, das Signaturfelder enthält. - Erstellen Sie ein
System.IO.FileStream
-Objekt, indem Sie seinen Konstruktor aufrufen und einen Zeichenfolgenwert übergeben, der den Dateispeicherort des PDF-Dokuments und den Modus, in dem die Datei geöffnet werden soll, darstellt. - Erstellen Sie ein Byte-Array, das den Inhalt des
System.IO.FileStream
-Objekts speichert. Sie können die Größe des Byte-Arrays ermitteln, indem Sie die EigenschaftLength
des ObjektsSystem.IO.FileStream
abrufen. - Füllen Sie das Byte-Array mit Stream-Daten auf, indem Sie die Methode
Read
des ObjektsSystem.IO.FileStream
verwenden und das Byte-Array, die Startposition und die zu lesende Stream-Länge weitergeben. - Füllen Sie das
BLOB
-Objekt durch Zuweisen des Inhalts des Byte-Arrays zu seinem FeldMTOM
.
- Erstellen Sie ein Objekt
-
Abrufen der Signaturfeldnamen
- Rufen Sie die Namen der Signaturfelder ab, indem Sie die Methode
getSignatureFieldList
desSignatureServiceClient
-Objekts abrufen und dasBLOB
-Objekt übergeben, das das PDF-Dokument mit Signaturfehldern enthält. Diese Methode gibt einMyArrayOfPDFSignatureField
-Sammlungsobjekt zurück, in dem jedes Element einPDFSignatureField
-Objekt enthält. - Gehen Sie schrittweise durch das
MyArrayOfPDFSignatureField
-Objekt, um festzustellen, ob Signaturfeldnamen vorhanden sind. Für jedes Signaturfeld im PDF-Dokument können Sie einPDFSignatureField
-Objekt erhalten. Um den Namen des Signaturfelds abzurufen, rufen Sie die MethodegetName
desPDFSignatureField
-Objekts auf. Diese Methode gibt einen Zeichenfolgenwert zurück, der den Signaturfeldnamen angibt.
- Rufen Sie die Namen der Signaturfelder ab, indem Sie die Methode
Ändern von Signaturfeldern
Sie können Signaturfelder in einem PDF-Dokument ändern, indem Sie die Java-API und die Web-Service-API verwenden. Das Ändern eines Signaturfelds umfasst das Manipulieren seiner Signaturfeldsperre- oder Seed-Wert-Lexikonwerte.
Ein Feldsperre-Wörterbuch gibt eine Liste von Feldern an, die gesperrt werden, wenn das Signaturfeld signiert wird. Ein gesperrtes Feld verhindert, dass Benutzer Änderungen an dem Feld vornehmen. Ein Seed-Wert-Wörterbuch enthält Einschränkungsinformationen, die zum Zeitpunkt der Anwendung der Signatur verwendet werden. Beispiel: Sie können die Berechtigungen ändern, die Aktionen steuern, die auftreten können, ohne dass eine Signatur ungültig wird.
Durch Ändern eines vorhandenen Signaturfelds können Sie das PDF-Dokument so bearbeiten, dass es die sich ändernden Geschäftsanforderungen widerspiegelt. Beispiel: Eine neue Geschäftsanforderung erfordert das Sperren aller Felder eines Dokuments, nachdem es signiert wurde.
In diesem Abschnitt wird beschrieben, wie Sie ein Signaturfeld ändern, indem Sie sowohl die Werte des Feldsperre-Wörterbuchs als auch des Seed-Wert-Wörterbuchs ändern. Änderungen am Signaturfeldsperre-Wörterbuch führen dazu, dass alle Felder im PDF-Dokument gesperrt werden, wenn ein Signaturfeld signiert wird. Änderungen am Seed-Wert-Wörterbuch verbieten bestimmte Arten von Änderungen am Dokument.
Zusammenfassung der Schritte
Um Signaturfelder in einem PDF-Dokument zu ändern, führen Sie die folgenden Schritte aus:
- Schließen Sie Projektdateien ein.
- Erstellen Sie einen Signatur-Client.
- Rufen Sie das PDF-Dokument ab, das das zu ändernde Signaturfeld enthält.
- Legen Sie Wörterbuchwerte fest.
- Klicken Sie auf das Signaturfeld.
- Speichern Sie das Formular als PDF-Datei.
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:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-signatures-client.jar
- adobe-utilities.jar (erforderlich, wenn AEM Forms auf JBoss bereitgestellt wird)
- jbossall-client.jar (erforderlich, wenn AEM Forms auf JBoss bereitgestellt wird)
Weitere Informationen über den Speicherort dieser JAR-Dateien finden Sie unter Einbeziehung von LiveCycle Java-Bibliotheksdateien.
Erstellen eines Signatur-Clients
Bevor Sie einen Signature-Service-Vorgang programmgesteuert ausführen können, müssen Sie einen Signature-Service-Client erstellen.
Abrufen des PDF-Dokuments, das das zu ändernde Signaturfeld enthält
Rufen Sie ein PDF-Dokument ab, das das zu ändernde Signaturfeld enthält.
Festlegen von Wörterbuchwerten
Um ein Signaturfeld zu ändern, weisen Sie seinem Feldsperre- oder Seed-Wert-Wörterbuch Werte zu. Das Festlegen von Signaturfeldsperre-Wörterbuchwerten umfasst das Angeben von PDF-Dokumentfeldern, die beim Signieren des Signaturfelds gesperrt werden. (In diesem Abschnitt wird beschrieben, wie Sie alle Felder sperren.)
Die folgenden Seed-Wert-Wörterbuchwerte können festgelegt werden:
-
Sperrprüfung: Gibt an, ob eine Sperrprüfung durchgeführt wird, wenn eine Signatur auf das Signaturfeld angewendet wird.
-
Zertifikatoptionen: Weist dem Seed-Wert-Wörterbuch des Zertifikats Werte zu. Bevor Sie Zertifikatoptionen angeben, sollten Sie sich mit einem Seed-Wert-Wörterbuch des Zertifikats vertraut machen. (Siehe PDF-Verweis.)
-
Digest-Optionen: Weist Digest-Algorithmen zu, die zum Signieren verwendet werden. Gültige Werte sind SHA1, SHA256, SHA384, SHA512 und RIPEMD160.
-
Filter: Gibt den Filter an, der mit dem Signaturfeld verwendet wird. Sie können beispielsweise den Adobe.PPKLite-Filter verwenden. (Siehe PDF-Verweis.)
-
Flag-Optionen: Gibt die Markierungswerte an, die mit diesem Signaturfeld verbunden sind. Ein Wert von 1 bedeutet, dass ein Unterzeichner nur die angegebenen Werte für den Eintrag verwenden darf. Ein Wert von 0 bedeutet, dass andere Werte zulässig sind. Hier sind die Bit-Positionen:
- 1 (Filter): Der Signatur-Handler, der zum Signieren des Signaturfeldes verwendet werden soll
- 2 (SubFilter): Ein Array von Namen, die für das Signieren gültige Kodierungen angeben
- 3 (V): Die minimal erforderliche Versionsnummer des Signaturhandlers, der zum Signieren des Signaturfeldes verwendet werden soll
- 4 (Gründe): Ein Array von Zeichenfolgen, die mögliche Gründe für das Signieren eines Dokuments angeben
- 5 (PDFLegalWarnings): Ein Array von Zeichenfolgen, die mögliche rechtliche Bescheinigungen angeben
-
Rechtliche Bescheinigungen: Wenn ein Dokument zertifiziert wird, wird es automatisch auf bestimmte Arten von Inhalten gescannt, die den sichtbaren Inhalt eines Dokuments mehrdeutig oder irreführend machen können. Beispielsweise kann eine Anmerkung einen Text verdecken, der für das Verständnis dessen, was zertifiziert werden soll, wichtig ist. Der Scanvorgang erzeugt Warnungen, die auf das Vorhandensein dieser Art von Inhalten hinweisen. Außerdem wird eine ergänzende Erklärung zu den Inhalten gegeben, die möglicherweise Warnungen ausgelöst haben.
-
Berechtigungen: Gibt die Berechtigungen an, die für ein PDF-Dokument verwendet werden können, ohne dass die Signatur ungültig wird.
-
Gründe: Gibt Gründe an, warum dieses Dokument signiert werden muss.
-
Zeitstempel: Legt Optionen für den Zeitstempel fest. Sie können beispielsweise die URL des verwendeten Zeitstempelservers festlegen.
-
Version: Gibt die Mindestversionsnummer des Signaturhandlers an, der zum Signieren des Signaturfelds verwendet werden soll.
Ändern des Signaturfelds
Nachdem Sie einen Signature-Dienst-Client erstellt, ddas PDF-Dokument mit dem zu ändernden Signaturfeld abgerufen und Wörterbuchwerte festgelegt haben, können Sie den Signature-Dienst anweisen, das Signaturfeld zu ändern. Der Signature-Dienst gibt dann ein PDF-Dokument zurück, das das geänderte Signaturfeld enthält. Das ursprüngliche PDF-Dokument ist nicht betroffen.
Das PDF-Dokument als PDF-Datei speichern
Speichern Sie das PDF-Dokument mit dem geänderten Signaturfeld als PDF-Datei, damit die Benutzer es in Acrobat oder Adobe Reader öffnen können.
Siehe auch
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Ändern von Signaturfeldern mit der Java-API
Ändern eines Signaturfeld mithilfe der Signature-API (Java):
-
Projektdateien einschließen
Schließen Sie JAR-Dateien, beispielsweise „adobe-signatures-client.jar“, in den Klassenpfad Ihres Java-Projekts ein.
-
Erstellen eines Signatur-Clients
- Erstellen Sie ein
ServiceClientFactory
-Objekt, das Verbindungseigenschaften enthält. - Erstellen Sie ein
SignatureServiceClient
-Objekt, indem Sie seinen Konstruktor verwenden und dasServiceClientFactory
-Objekt übergeben.
- Erstellen Sie ein
-
Abrufen des PDF-Dokuments, welches das zu ändernde Signaturfeld enthält
- Erstellen Sie ein
java.io.FileInputStream
-Objekt, welches das PDF-Dokument mit dem zu ändernden Signaturfeld darstellt, indem Sie seinen Konstruktor verwenden und einen Zeichenfolgewert übergeben, der den Speicherort des PDF-Dokuments angibt. - Erstellen Sie ein
com.adobe.idp.Document
-Objekt, indem Sie seinen Konstruktor verwenden und dasjava.io.FileInputStream
-Objekt übergeben.
- Erstellen Sie ein
-
Festlegen von Wörterbuchwerten
- Erstellen Sie ein Objekt
PDFSignatureFieldProperties
, indem Sie den Konstruktor verwenden. EinPDFSignatureFieldProperties
-Objekt speichert Informationen zum Sperrwörterbuch für Signaturfelder und zum Seed-Wert-Wörterbuch. - Erstellen Sie ein Objekt
PDFSeedValueOptionSpec
, indem Sie den Konstruktor verwenden. Mit diesem Objekt können Sie Werte im Seed-Wert-Wörterbuch festlegen. - Verhindern Sie Änderungen am PDF-Dokument, indem Sie die Methode
setMdpValue
desPDFSeedValueOptionSpec
-Objekts aufrufen und denMDPPermissions.NoChanges
-Auflistungswert übergeben. - Erstellen Sie ein Objekt
FieldMDPOptionSpec
, indem Sie den Konstruktor verwenden. Mit diesem Objekt können Sie Werte im Signaturfeldsperre-Wörterbuch festlegen. - Sperren Sie alle Felder im PDF-Dokument, indem Sie die Methode
setMdpValue
desFieldMDPOptionSpec
-Objekts aufrufen und denFieldMDPAction.ALL
-Auflistungswert übergeben. - Legen Sie Informationen zum Seed-Wert-Wörterbuch fest, indem Sie die Methode
setSeedValue
desPDFSignatureFieldProperties
-Objekts aufrufen und dasPDFSeedValueOptionSpec
-Objekt übergeben. - Legen Sie Informationen für das Wörterbuch für die Signaturfeldsperre fest, indem Sie die Methode
setFieldMDP
desPDFSignatureFieldProperties
-Objekts aufrufen und dasFieldMDPOptionSpec
-Objekt übergeben.
HINWEIS
Alle Seed-Wert-Wörterbuchwerte, die Sie festlegen können, finden Sie in dem KlassenverweisPDFSeedValueOptionSpec
. (Siehe AEM Forms-API-Verweis.) - Erstellen Sie ein Objekt
-
Ändern des Signaturfelds
Ändern Sie das Signaturfeld, indem Sie die Methode
modifySignatureField
desSignatureServiceClient
-Objekts aufrufen und die folgenden Werte übergeben:- Das
com.adobe.idp.Document
-Objekt, in dem das PDF-Dokument mit dem zu ändernden Signaturfeld gespeichert ist - Ein Zeichenfolgenwert, der den Namen des Signaturfelds angibt
- Das
PDFSignatureFieldProperties
-Objekt, das Informationen zum Signaturfeldsperre-Wörterbuch und zum Seed-Wert-Wörterbuch speichert
Die Methode
modifySignatureField
gibt eincom.adobe.idp.Document
-Objekt zurück, das ein PDF-Dokument speichert, welches das geänderte Signaturfeld enthält. - Das
-
Das PDF-Dokument als PDF-Datei speichern
- Erstellen Sie ein
java.io.File
-Objekt und stellen Sie sicher, dass die Dateierweiterung .pdf ist. - Rufen Sie die Methode
copyToFile
descom.adobe.idp.Document
-Objekts auf, um den Inhalt descom.adobe.idp.Document
-Objekts in die Datei zu kopieren. Stellen Sie sicher, dass Sie dascom.adobe.idp.Document
-Objekt verwenden, das die MethodemodifySignatureField
zurückgegeben hat.
- Erstellen Sie ein
Ändern von Signaturfeldern mithilfe der Webservice-API
So ändern Sie ein Signaturfeld mithilfe der Signature-API (Webservice):
-
Projektdateien einschließen
Erstellen Sie ein Microsoft .NET-Projekt, das MTOM verwendet. Stellen Sie sicher, dass Sie die folgende WSDL-Definition verwenden:
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.HINWEIS
Ersetzen Sielocalhost
durch die IP-Adresse des Servers, auf dem AEM Forms gehostet wird. -
Erstellen eines Signatur-Clients
-
Erstellen Sie mithilfe des betreffenden Standardkonstruktors ein
SignatureServiceClient
-Objekt. -
Erstellen Sie mithilfe des
System.ServiceModel.EndpointAddress
-Konstruktors einSignatureServiceClient.Endpoint.Address
-Objekt. Übergeben Sie einen Zeichenfolgenwert, der die WSDL für den AEM Forms-Service angibt (z. B.http://localhost:8080/soap/services/SignatureService?WSDL
). Das Attributlc_version
muss nicht verwendet werden. Dieses Attribut wird verwendet, wenn Sie einen Service-Verweis erstellen.) -
Erstellen Sie ein
System.ServiceModel.BasicHttpBinding
-Objekt durch Abrufen des Werts des FeldsSignatureServiceClient.Endpoint.Binding
. Wandeln Sie den Rückgabewert inBasicHttpBinding
um. -
Stellen Sie das Feld
MessageEncoding
des ObjektsSystem.ServiceModel.BasicHttpBinding
aufWSMessageEncoding.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
SignatureServiceClient.ClientCredentials.UserName.UserName
den AEM Forms-Benutzernamen zu. - Weisen Sie dem Feld
SignatureServiceClient.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 konstanten WertBasicHttpSecurityMode.TransportCredentialOnly
zu.
- Weisen Sie dem Feld
-
-
Abrufen des PDF-Dokuments, welches das zu ändernde Signaturfeld enthält
- Erstellen Sie ein Objekt
BLOB
, indem Sie den Konstruktor verwenden. DieBLOB
-Objekt wird verwendet, um das PDF-Dokument zu speichern, das das zu ändernde Signaturfeld enthält. - Erstellen Sie ein
System.IO.FileStream
-Objekt, indem Sie seinen Konstruktor aufrufen und einen Zeichenfolgenwert übergeben, der den Dateispeicherort des PDF-Dokuments und den Modus darstellt, 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 ermitteln, indem Sie die EigenschaftLength
des ObjektsSystem.IO.FileStream
abrufen. - Füllen Sie das Byte-Array mit Stream-Daten auf, indem Sie die Methode
Read
des ObjektsSystem.IO.FileStream
verwenden und das Byte-Array, die Startposition und die zu lesende Stream-Länge weitergeben. - Füllen Sie das
BLOB
-Objekt, indem Sie seiner EigenschaftMTOM
den Inhalt des Byte-Arrays zuweisen.
- Erstellen Sie ein Objekt
-
Festlegen von Wörterbuchwerten
- Erstellen Sie ein Objekt
PDFSignatureFieldProperties
, indem Sie den Konstruktor verwenden. Dieses Objekt speichert Informationen zum Signaturfeldsperre-Wörterbuch und zum Seed-Wert-Wörterbuch. - Erstellen Sie ein Objekt
PDFSeedValueOptionSpec
, indem Sie den Konstruktor verwenden. Mit diesem Objekt können Sie Werte im Seed-Wert-Wörterbuch festlegen. - Sie können Änderungen am PDF-Dokument verbieten, indem Sie dem Datenelement
mdpValue
desPDFSeedValueOptionSpec
-Objekts denMDPPermissions.NoChanges
-Auflistungswert zuweisen. - Erstellen Sie ein Objekt
FieldMDPOptionSpec
, indem Sie den Konstruktor verwenden. Mit diesem Objekt können Sie Werte im Signaturfeldsperre-Wörterbuch festlegen. - Sperren Sie alle Felder im PDF-Dokument, indem Sie den
FieldMDPAction.ALL
-Auflistungswert dem DatenelementmdpValue
desFieldMDPOptionSpec
-Objekts zuweisen. - Legen Sie Informationen für das Seed-Wert-Wörterbuch fest, indem Sie das
PDFSeedValueOptionSpec
-Objekt dem DatenelementseedValue
desPDFSignatureFieldProperties
-Objekts zuweisen. - Legen Sie Informationen für das Wörterbuch für die Signaturfeldsperre fest, indem Sie das
FieldMDPOptionSpec
-Objekt dem DatenelementfieldMDP
desPDFSignatureFieldProperties
-Objekts zuweisen.
HINWEIS
Informationen zu allen Seed-Wert-Wörterbuchwerten, die Sie festlegen können, finden Sie in derPDFSeedValueOptionSpec
-Klassenreferenz. (Siehe AEM Forms-API-Referenz). - Erstellen Sie ein Objekt
-
Ändern des Signaturfelds
Ändern Sie das Signaturfeld, indem Sie die Methode
modifySignatureField
desSignatureServiceClient
-Objekts aufrufen und die folgenden Werte übergeben:- Das
BLOB
-Objekt, in dem das PDF-Dokument mit dem zu ändernden Signaturfeld gespeichert ist - Ein Zeichenfolgenwert, der den Namen des Signaturfelds angibt
- Das
PDFSignatureFieldProperties
-Objekt, das Informationen zum Signaturfeldsperre-Wörterbuch und zum Seed-Wert-Wörterbuch speichert
Die Methode
modifySignatureField
gibt einBLOB
-Objekt zurück, das ein PDF-Dokument speichert, welches das geänderte Signaturfeld enthält. - Das
-
Das PDF-Dokument als PDF-Datei speichern
- Erstellen Sie ein
System.IO.FileStream
-Objekt, indem Sie seinen Konstruktor aufrufen und einen Zeichenfolgenwert übergeben, der den Dateispeicherort des PDF-Dokuments, das das Signaturfeld enthalten soll, und den Modus darstellt, in dem die Datei geöffnet werden soll. - Erstellen Sie ein Byte-Array, das den Inhalt des
BLOB
-Objekts speichert, das die MethodeaddSignatureField
zurückgibt. Füllen Sie das Byte-Array, indem Sie den Wert des DatenelementsMTOM
desBLOB
-Objekts abrufen. - Erstellen Sie ein
System.IO.BinaryWriter
-Objekt, indem Sie seinen Konstruktor aufrufen und dasSystem.IO.FileStream
-Objekt übergeben. - Schreiben Sie den Inhalt des Byte-Arrays in eine PDF-Datei, indem Sie die Methode
Write
desSystem.IO.BinaryWriter
-Objekts aufrufen und das Byte-Array übergeben.
- Erstellen Sie ein