Adición de campos de firma
Las firmas digitales aparecen en los campos de firma, que son campos de formulario que contienen una representación gráfica de la firma. Los campos de firma pueden ser visibles o invisibles. Los firmantes pueden utilizar un campo de firma preexistente o se puede agregar un campo de firma mediante programación. En cualquier caso, el campo de firma debe existir antes de que se pueda firmar un documento de PDF.
Puede agregar mediante programación un campo de firma mediante la API de Java del servicio de firma o la API del servicio web de firma. Puede agregar más de un campo de firma a un documento de PDF; sin embargo, cada nombre de campo de firma debe ser único.
Resumen de los pasos
Para agregar un campo de firma a un documento de PDF, realice las siguientes tareas:
- Incluir archivos de proyecto.
- Cree un cliente de firma.
- Obtenga un documento de PDF al que se agregue un campo de firma.
- Agregue un campo de firma.
- Guarde el documento de PDF como un archivo de PDF.
Incluir archivos de proyecto
Incluya los archivos necesarios en el proyecto de desarrollo. Si está creando una aplicación cliente mediante Java, incluya los archivos JAR necesarios. Si utiliza servicios web, asegúrese de incluir los archivos proxy.
Los siguientes archivos JAR deben agregarse a la ruta de clase del proyecto:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-signatures-client.jar
- adobe-utilities.jar (requerido si AEM Forms está implementado en JBoss)
- jbossall-client.jar (requerido si AEM Forms está implementado en JBoss)
Crear un cliente de firma
Para poder realizar mediante programación una operación del servicio Signature, debe crear un cliente del servicio Signature.
Obtener un documento de PDF al que se agrega un campo de firma
Obtenga un documento de PDF al que se agregue un campo de firma.
Agregar un campo de firma
Para agregar correctamente un campo de firma a un documento de PDF, especifique valores de coordenadas que identifiquen la ubicación del campo de firma. (Si agrega un campo de firma invisible, estos valores no son obligatorios). Además, puede especificar qué campos del documento de PDF están bloqueados después de aplicar una firma al campo de firma.
Guardar el documento de PDF como archivo de PDF
Una vez que el servicio Signature agrega un campo de firma al documento de PDF, puede guardar el documento como un archivo de PDF para que los usuarios puedan abrirlo en Acrobat o Adobe Reader.
Consulte también
Incluir archivos de biblioteca Java de AEM Forms
Añadir campos de firma mediante la API de Java
Agregar un campo de firma mediante la API de firma (Java):
-
Incluir archivos de proyecto
Incluya archivos JAR de cliente, como adobe-signatures-client.jar, en la ruta de clase del proyecto Java.
-
Crear un cliente de firma
- Cree un objeto
ServiceClientFactory
que contenga propiedades de conexión. - Cree un objeto
SignatureServiceClient
utilizando su constructor y pasando el objetoServiceClientFactory
.
- Cree un objeto
-
Obtener un documento de PDF al que se agregue un campo de firma
- Cree un objeto
java.io.FileInputStream
que represente el documento de PDF al que se agrega un campo de firma utilizando su constructor y pasando un valor de cadena que especifique la ubicación del documento de PDF. - Cree un objeto
com.adobe.idp.Document
utilizando su constructor y pasando el objetojava.io.FileInputStream
.
- Cree un objeto
-
Agregar un campo de firma
-
Cree un objeto
PositionRectangle
que especifique la ubicación del campo de firma mediante su constructor. En el constructor, especifique los valores de coordenadas. -
Si lo desea, cree un objeto
FieldMDPOptions
que especifique los campos que se bloquearán cuando se aplique una firma digital al campo de firma. -
Agregue un campo de firma a un documento de PDF invocando el método
addSignatureField
del objetoSignatureServiceClient
y pasando los siguientes valores:- A
com.adobe.idp
.Document
objeto que representa el documento de PDF al que se agrega un campo de firma. - Valor de cadena que especifica el nombre del campo de firma.
- Valor
java.lang.Integer
que representa el número de página al que se agrega un campo de firma. - Un objeto
PositionRectangle
que especifica la ubicación del campo de firma. - Un objeto
FieldMDPOptions
que especifica campos en el documento de PDF que están bloqueados después de aplicar una firma digital al campo de firma. Este valor de parámetro es opcional y puede pasarnull
.
- A
-
Un objeto
PDFSeedValueOptions
que especifica varios valores en tiempo de ejecución. Este valor de parámetro es opcional y puede pasarnull
.El método
addSignatureField
devuelve uncom.adobe.idp
.Document
objeto que representa un documento de PDF que contiene un campo de firma.
NOTA
Puede invocar el métodoaddInvisibleSignatureField
del objetoSignatureServiceClient
para agregar un campo de firma invisible. -
-
Guardar el documento de PDF como archivo de PDF
- Cree un objeto
java.io.File
y asegúrese de que la extensión del archivo sea .pdf. - Invoque el
com.adobe.idp
. El métodocopyToFile
del objetoDocument
para copiar el contenido del objetoDocument
en el archivo. Asegúrese de utilizarcom.adobe.idp
. ObjetoDocument
devuelto por el métodoaddSignatureField
.
- Cree un objeto
Consulte también
Agregar campos de firma mediante la API de servicio web
Para agregar un campo de firma mediante la API de firma (servicio web):
-
Incluir archivos de proyecto
Cree un proyecto de Microsoft .NET que utilice MTOM. Asegúrese de utilizar la siguiente definición de WSDL:
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.NOTA
Reemplacelocalhost
por la dirección IP del servidor que hospeda AEM Forms. -
Crear un cliente de firma
-
Cree un objeto
SignatureServiceClient
utilizando su constructor predeterminado. -
Cree un objeto
SignatureServiceClient.Endpoint.Address
mediante el constructorSystem.ServiceModel.EndpointAddress
. Pase un valor de cadena que especifique el WSDL al servicio AEM Forms (por ejemplo,http://localhost:8080/soap/services/SignatureService?WSDL
). No necesita usar el atributolc_version
. Este atributo se utiliza al crear una referencia de servicio). -
Cree un objeto
System.ServiceModel.BasicHttpBinding
obteniendo el valor del campoSignatureServiceClient.Endpoint.Binding
. Convertir el valor devuelto enBasicHttpBinding
. -
Establezca el campo
MessageEncoding
del objetoSystem.ServiceModel.BasicHttpBinding
enWSMessageEncoding.Mtom
. Este valor garantiza que se utiliza MTOM. -
Habilite la autenticación HTTP básica realizando las siguientes tareas:
- AEM Asigne el nombre de usuario de los formularios de la al campo
SignatureServiceClient.ClientCredentials.UserName.UserName
. - Asigne el valor de contraseña correspondiente al campo
SignatureServiceClient.ClientCredentials.UserName.Password
. - Asigne el valor constante
HttpClientCredentialType.Basic
al campoBasicHttpBindingSecurity.Transport.ClientCredentialType
. - Asigne el valor constante
BasicHttpSecurityMode.TransportCredentialOnly
al campoBasicHttpBindingSecurity.Security.Mode
.
- AEM Asigne el nombre de usuario de los formularios de la al campo
-
-
Obtener un documento de PDF al que se agregue un campo de firma
- Crear un objeto
BLOB
mediante su constructor. El objetoBLOB
se usa para almacenar el documento de PDF que contendrá un campo de firma. - Cree un objeto
System.IO.FileStream
invocando su constructor y pasando un valor de cadena que represente la ubicación de archivo del documento de PDF y el modo en que se abrirá el archivo. - Cree una matriz de bytes que almacene el contenido del objeto
System.IO.FileStream
. Puede determinar el tamaño de la matriz de bytes obteniendo la propiedadLength
del objetoSystem.IO.FileStream
. - Rellene la matriz de bytes con datos de secuencia invocando el método
Read
del objetoSystem.IO.FileStream
y pasando la matriz de bytes, la posición inicial y la longitud de secuencia para que se lea. - Rellene el objeto
BLOB
asignando su propiedadMTOM
con el contenido de la matriz de bytes.
- Crear un objeto
-
Agregar un campo de firma
Agregue un campo de firma al documento de PDF invocando el método
addSignatureField
del objetoSignatureServiceClient
y pasando los siguientes valores:- Un objeto
BLOB
que representa el documento de PDF al que se agrega un campo de firma. - Valor de cadena que especifica el nombre del campo de firma.
- Valor entero que representa el número de página al que se agrega un campo de firma.
- Un objeto
PositionRect
que especifica la ubicación del campo de firma. - Un objeto
FieldMDPOptions
que especifica campos en el documento de PDF que están bloqueados después de aplicar una firma digital al campo de firma. Este valor de parámetro es opcional y puede pasarnull
. - Un objeto
PDFSeedValueOptions
que especifica varios valores en tiempo de ejecución. Este valor de parámetro es opcional y puede pasarnull
.
El método
addSignatureField
devuelve un objetoBLOB
que representa un documento de PDF que contiene un campo de firma. - Un objeto
-
Guardar el documento de PDF como archivo de PDF
- Cree un objeto
System.IO.FileStream
invocando su constructor y pasando un valor de cadena que represente la ubicación de archivo del documento de PDF que contendrá el campo de firma y el modo en que se abrirá el archivo. - Cree una matriz de bytes que almacene el contenido del objeto
BLOB
devuelto por el métodoaddSignatureField
. Rellene la matriz de bytes obteniendo el valor del miembro de datosbinaryData
del objetoBLOB
. - Cree un objeto
System.IO.BinaryWriter
invocando su constructor y pasando el objetoSystem.IO.FileStream
. - Escriba el contenido de la matriz de bytes en un archivo PDF invocando el método
Write
del objetoSystem.IO.BinaryWriter
y pasando la matriz de bytes.
- Cree un objeto
Recuperando nombres de campos de firma
Puede recuperar los nombres de todos los campos de firma que se encuentran en un documento de PDF que desee firmar o certificar. Si no está seguro de los nombres de los campos de firma que están en un documento de PDF o desea verificarlos, puede recuperarlos mediante programación. El servicio Firma devuelve el nombre completo del campo de firma, como form1[0].grantApplication[0].page1[0].SignatureField1[0]
.
Resumen de los pasos
Para recuperar los nombres de los campos de firma, realice las siguientes tareas:
- Incluir archivos de proyecto.
- Cree un cliente de firma.
- Obtenga el documento del PDF que contiene los campos de firma.
- Recupere los nombres de los campos de firma.
Incluir archivos de proyecto
Incluya los archivos necesarios en el proyecto de desarrollo. Si está creando una aplicación cliente mediante Java, incluya los archivos JAR necesarios. Si utiliza servicios web, asegúrese de incluir los archivos proxy.
Los siguientes archivos JAR deben agregarse a la ruta de clase del proyecto:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-signatures-client.jar
- adobe-utilities.jar (requerido si AEM Forms está implementado en JBoss)
- jbossall-client.jar (requerido si AEM Forms está implementado en JBoss)
Para obtener información sobre la ubicación de estos archivos JAR, consulte Inclusión de archivos de biblioteca Java de AEM Forms.
Crear un cliente de firma
Para poder realizar mediante programación una operación del servicio Signature, debe crear un cliente del servicio Signature.
Obtener el documento de PDF que contiene campos de firma
Recupere un documento de PDF que contenga campos de firma.
Recuperar los nombres de los campos de firma
Puede recuperar los nombres de los campos de firma después de recuperar un documento de PDF que contenga uno o varios campos de firma.
Consulte también
Recuperar nombres de campos de firma mediante la API de Java
Recuperar el campo de firma mediante la API de servicio web
Incluir archivos de biblioteca Java de AEM Forms
Recuperar nombres de campos de firma mediante la API de Java
Recupere los nombres de los campos de firma mediante la API de firma (Java):
-
Incluir archivos de proyecto
Incluya archivos JAR de cliente, como adobe-signatures-client.jar, en la ruta de clase del proyecto Java.
-
Crear un cliente de firma
- Cree un objeto
ServiceClientFactory
que contenga propiedades de conexión. - Cree un objeto
SignatureServiceClient
utilizando su constructor y pasando el objetoServiceClientFactory
.
- Cree un objeto
-
Obtenga el documento del PDF que contiene los campos de firma
- Cree un objeto
java.io.FileInputStream
que represente el documento de PDF que contiene campos de firma utilizando su constructor y pasando un valor de cadena que especifique la ubicación del documento de PDF. - Cree un objeto
com.adobe.idp.Document
utilizando su constructor y pasando el objetojava.io.FileInputStream
.
- Cree un objeto
-
Recuperar los nombres de los campos de firma
- Recupere los nombres de los campos de firma invocando el método
getSignatureFieldList
del objetoSignatureServiceClient
y pasando el objetocom.adobe.idp.Document
que contiene el documento de PDF que contiene los campos de firma. Este método devuelve un objetojava.util.List
, en el que cada elemento contiene un objetoPDFSignatureField
. Con este objeto, puede obtener información adicional sobre un campo de firma, como si está visible. - Recorra en iteración el objeto
java.util.List
para determinar si hay nombres de campo de firma. Para cada campo de firma del documento de PDF, puede obtener un objetoPDFSignatureField
independiente. Para obtener el nombre del campo de firma, invoque el métodogetName
del objetoPDFSignatureField
. Este método devuelve un valor de cadena que especifica el nombre del campo de firma.
- Recupere los nombres de los campos de firma invocando el método
Recuperar el campo de firma mediante la API de servicio web
Recupere los nombres de los campos de firma mediante la API de firma (servicio web):
-
Incluir archivos de proyecto
Cree un proyecto de Microsoft .NET que utilice MTOM. Asegúrese de utilizar la siguiente definición de WSDL:
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.NOTA
Reemplacelocalhost
por la dirección IP del servidor que hospeda AEM Forms. -
Crear un cliente de firma
-
Cree un objeto
SignatureServiceClient
utilizando su constructor predeterminado. -
Cree un objeto
SignatureServiceClient.Endpoint.Address
mediante el constructorSystem.ServiceModel.EndpointAddress
. Pase un valor de cadena que especifique el WSDL al servicio AEM Forms (por ejemplo,http://localhost:8080/soap/services/SignatureService?WSDL
). No necesita usar el atributolc_version
. Este atributo se utiliza al crear una referencia de servicio). -
Cree un objeto
System.ServiceModel.BasicHttpBinding
obteniendo el valor del campoSignatureServiceClient.Endpoint.Binding
. Convertir el valor devuelto enBasicHttpBinding
. -
Establezca el campo
MessageEncoding
del objetoSystem.ServiceModel.BasicHttpBinding
enWSMessageEncoding.Mtom
. Este valor garantiza que se utiliza MTOM. -
Habilite la autenticación HTTP básica realizando las siguientes tareas:
- AEM Asigne el nombre de usuario de los formularios de la al campo
SignatureServiceClient.ClientCredentials.UserName.UserName
. - Asigne el valor de contraseña correspondiente al campo
SignatureServiceClient.ClientCredentials.UserName.Password
. - Asigne el valor constante
HttpClientCredentialType.Basic
al campoBasicHttpBindingSecurity.Transport.ClientCredentialType
. - Asigne el valor constante
BasicHttpSecurityMode.TransportCredentialOnly
al campoBasicHttpBindingSecurity.Security.Mode
.
- AEM Asigne el nombre de usuario de los formularios de la al campo
-
-
Obtenga el documento del PDF que contiene los campos de firma
- Crear un objeto
BLOB
mediante su constructor. El objetoBLOB
se usa para almacenar el documento de PDF que contiene campos de firma. - Cree un objeto
System.IO.FileStream
invocando su constructor y pasando un valor de cadena que represente la ubicación de archivo del documento de PDF y el modo en que se abrirá el archivo. - Cree una matriz de bytes que almacene el contenido del objeto
System.IO.FileStream
. Puede determinar el tamaño de la matriz de bytes obteniendo la propiedadLength
del objetoSystem.IO.FileStream
. - Rellene la matriz de bytes con datos de secuencia invocando el método
Read
del objetoSystem.IO.FileStream
y pasando la matriz de bytes, la posición inicial y la longitud de secuencia para que se lea. - Rellene el objeto
BLOB
asignando su campoMTOM
al contenido de la matriz de bytes.
- Crear un objeto
-
Recuperar los nombres de los campos de firma
- Recupere los nombres de los campos de firma invocando el método
getSignatureFieldList
del objetoSignatureServiceClient
y pasando el objetoBLOB
que contiene el documento de PDF que contiene los campos de firma. Este método devuelve un objeto de colecciónMyArrayOfPDFSignatureField
donde cada elemento contiene un objetoPDFSignatureField
. - Recorra en iteración el objeto
MyArrayOfPDFSignatureField
para determinar si hay nombres de campo de firma. Para cada campo de firma del documento de PDF, puede obtener un objetoPDFSignatureField
. Para obtener el nombre del campo de firma, invoque el métodogetName
del objetoPDFSignatureField
. Este método devuelve un valor de cadena que especifica el nombre del campo de firma.
- Recupere los nombres de los campos de firma invocando el método
Modificación de campos de firma
Puede modificar los campos de firma que se encuentran en un documento de PDF mediante la API de Java y la API del servicio web. La modificación de un campo de firma implica la manipulación de sus valores del diccionario de bloqueo de campos de firma o valores del diccionario de valores de semillas.
Un diccionario de bloqueo de campos especifica una lista de campos que se bloquearán cuando se firme en el campo de firma. Un campo bloqueado impedirá que los usuarios realicen cambios en el campo. Un diccionario de valores de inicialización contiene información de restricción que se usa en el momento en que se aplica la firma. Por ejemplo, puede cambiar los permisos que controlan las acciones que se pueden producir sin invalidar una firma.
Si modifica un campo de firma existente, puede cambiar el documento de PDF para reflejar los cambios en los requisitos empresariales. Por ejemplo, un requisito empresarial nuevo puede requerir bloquear todos los campos del documento después de firmarlo.
En esta sección se explica cómo modificar un campo de firma mediante la modificación de los valores del diccionario de bloqueo de campos y del diccionario de valores semilla. Los cambios realizados en el diccionario de bloqueo de campos de firma hacen que todos los campos del documento de PDF se bloqueen cuando se firma un campo de firma. Los cambios realizados en el diccionario de valores semilla prohíben tipos específicos de cambios en el documento.
Resumen de los pasos
Para modificar los campos de firma en un documento de PDF, realice las siguientes tareas:
- Incluir archivos de proyecto.
- Cree un cliente de firma.
- Obtenga el documento del PDF que contiene el campo de firma que desea modificar.
- Establecer valores de diccionario.
- Modifique el campo de firma.
- Guarde el documento de PDF como un archivo de PDF.
Incluir archivos de proyecto
Incluya los archivos necesarios en el proyecto de desarrollo. Si está creando una aplicación cliente con Java, incluya los archivos JAR necesarios. Si utiliza servicios web, asegúrese de incluir los archivos proxy.
Los siguientes archivos JAR deben agregarse a la ruta de clase del proyecto:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-signatures-client.jar
- adobe-utilities.jar (requerido si AEM Forms está implementado en JBoss)
- jbossall-client.jar (requerido si AEM Forms está implementado en JBoss)
Para obtener información sobre la ubicación de estos archivos JAR, consulte Inclusión de archivos de biblioteca Java de LiveCycle.
Crear un cliente de firma
Para poder realizar mediante programación una operación del servicio Signature, debe crear un cliente del servicio Signature.
Obtenga el documento de PDF que contiene el campo de firma que desea modificar
Recupere un documento de PDF que contenga el campo de firma que desea modificar.
Establecer valores de diccionario
Para modificar un campo de firma, asigne valores a su diccionario de bloqueo de campos o diccionario de valores semilla. Especificar los valores del diccionario de bloqueo de campos de firma implica especificar los campos de documento de PDF que están bloqueados cuando se firma el campo de firma. (En esta sección se explica cómo bloquear todos los campos.)
Se pueden configurar los siguientes valores de diccionario de valores semilla:
-
Comprobación de revisión: Especifica si se realiza una comprobación de revocación cuando se aplica una firma al campo de firma.
-
Opciones de certificado: asigna valores al diccionario de valores de inicialización del certificado. Antes de especificar opciones de certificado, se recomienda familiarizarse con un diccionario de valores semilla de certificado. (Consulte Referencia de PDF.)
-
Opciones de resumen: Asigna los algoritmos de resumen que se usan para firmar. Los valores válidos son SHA1, SHA256, SHA384, SHA512 y RIPEMD160.
-
Filtro: especifica el filtro que se usa con el campo de firma. Por ejemplo, puede utilizar el filtro Adobe.PPKLite. (Consulte Referencia de PDF.)
-
Opciones de marca: especifica los valores de marca asociados con este campo de firma. Un valor de 1 significa que un firmante solo debe utilizar los valores especificados para la entrada. Un valor de 0 significa que se permiten otros valores. Estas son las posiciones de bits:
- 1(Filtro): Controlador de firma que se utilizará para firmar el campo de firma
- 2 (subfiltro): Matriz de nombres que indica codificaciones aceptables para usar al firmar
- 3 (V): El número de versión mínimo requerido del controlador de firma que se utilizará para firmar el campo de firma
- 4 (Motivos): Matriz de cadenas que especifica posibles motivos para firmar un documento
- 5 (PDFLegalWarnings): Una matriz de cadenas que especifica posibles autenticaciones legales
-
Autenticaciones legales: cuando se certifica un documento, se analiza automáticamente para detectar tipos de contenido específicos que pueden hacer que el contenido visible de un documento sea ambiguo o engañoso. Por ejemplo, una anotación puede oscurecer el texto que es importante para comprender qué se certifica. El proceso de digitalización genera advertencias que indican la presencia de este tipo de contenido. También proporciona una explicación adicional del contenido que puede haber generado advertencias.
-
Permisos: especifica los permisos que se pueden usar en un documento de PDF sin invalidar la firma.
-
Motivos: especifica los motivos por los que se debe firmar este documento.
-
Marca de tiempo: Especifica las opciones de marca de tiempo. Por ejemplo, puede establecer la dirección URL del servidor de marca de tiempo que se utiliza.
-
Versión: especifica el número mínimo de versión del controlador de firma que se utilizará para firmar el campo de firma.
Modificar el campo de firma
Después de crear un cliente de servicios de firma, recuperar el documento de PDF que contiene el campo de firma que desea modificar y establecer los valores del diccionario, puede indicar al servicio de firma que modifique el campo de firma. A continuación, el servicio Signature devuelve un documento de PDF que contiene el campo de firma modificado. El documento original del PDF no se ve afectado.
Guardar el documento de PDF como archivo de PDF
Guarde el documento del PDF que contiene el campo de firma modificado como archivo del PDF para que los usuarios puedan abrirlo en Acrobat o Adobe Reader.
Consulte también
Incluir archivos de biblioteca Java de AEM Forms
Estableciendo propiedades de conexión
Modificación de los campos de firma mediante la API de Java
Modificar un campo de firma mediante la API de firma (Java):
-
Incluir archivos de proyecto
Incluya archivos JAR de cliente, como adobe-signatures-client.jar, en la ruta de clase del proyecto Java.
-
Crear un cliente de firma
- Cree un objeto
ServiceClientFactory
que contenga propiedades de conexión. - Cree un objeto
SignatureServiceClient
utilizando su constructor y pasando el objetoServiceClientFactory
.
- Cree un objeto
-
Obtenga el documento del PDF que contiene el campo de firma que desea modificar
- Cree un objeto
java.io.FileInputStream
que represente el documento de PDF que contiene el campo de firma que se va a modificar utilizando su constructor y pasando un valor de cadena que especifique la ubicación del documento de PDF. - Cree un objeto
com.adobe.idp.Document
utilizando su constructor y pasando el objetojava.io.FileInputStream
.
- Cree un objeto
-
Establecer valores de diccionario
- Crear un objeto
PDFSignatureFieldProperties
mediante su constructor. Un objetoPDFSignatureFieldProperties
almacena información del diccionario de bloqueo de campos de firma y del diccionario de valores semilla. - Crear un objeto
PDFSeedValueOptionSpec
mediante su constructor. Este objeto permite definir los valores del diccionario de valores semilla. - No permitir cambios en el documento del PDF invocando el método
setMdpValue
del objetoPDFSeedValueOptionSpec
y pasando el valor de enumeraciónMDPPermissions.NoChanges
. - Crear un objeto
FieldMDPOptionSpec
mediante su constructor. Este objeto permite establecer los valores del diccionario de bloqueo de campos de firma. - Bloquee todos los campos del documento de PDF invocando el método
setMdpValue
del objetoFieldMDPOptionSpec
y pasando el valor de enumeraciónFieldMDPAction.ALL
. - Para establecer la información del diccionario de valores de inicialización, invoque el método
setSeedValue
del objetoPDFSignatureFieldProperties
y pase el objetoPDFSeedValueOptionSpec
. - Establezca la información del diccionario de bloqueo de campos de firma invocando el método
setFieldMDP
del objetoPDFSignatureFieldProperties
y pasando el objetoFieldMDPOptionSpec
.
NOTA
Para ver todos los valores de diccionario de valores semilla que puede establecer, consulte la referencia de clasePDFSeedValueOptionSpec
. (Consulte Referencia de la API de AEM Forms.) - Crear un objeto
-
Modificación del campo de firma
Modifique el campo de firma invocando el método
modifySignatureField
del objetoSignatureServiceClient
y pasando los siguientes valores:- El objeto
com.adobe.idp.Document
que almacena el documento de PDF que contiene el campo de firma que se va a modificar - Un valor de cadena que especifica el nombre del campo de firma
- El objeto
PDFSignatureFieldProperties
que almacena la información del diccionario de bloqueo de campos de firma y del diccionario de valores semilla
El método
modifySignatureField
devuelve un objetocom.adobe.idp.Document
que almacena un documento de PDF que contiene el campo de firma modificado. - El objeto
-
Guardar el documento de PDF como archivo de PDF
- Cree un objeto
java.io.File
y asegúrese de que la extensión de nombre de archivo sea .pdf. - Invoque el método
copyToFile
del objetocom.adobe.idp.Document
para copiar el contenido del objetocom.adobe.idp.Document
en el archivo. Asegúrese de utilizar el objetocom.adobe.idp.Document
que devolvió el métodomodifySignatureField
.
- Cree un objeto
Modificación de los campos de firma mediante la API de servicio web
Modificar un campo de firma mediante la API de firma (servicio web):
-
Incluir archivos de proyecto
Cree un proyecto de Microsoft .NET que utilice MTOM. Asegúrese de utilizar la siguiente definición de WSDL:
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.NOTA
Reemplacelocalhost
por la dirección IP del servidor que hospeda AEM Forms. -
Crear un cliente de firma
-
Cree un objeto
SignatureServiceClient
utilizando su constructor predeterminado. -
Cree un objeto
SignatureServiceClient.Endpoint.Address
mediante el constructorSystem.ServiceModel.EndpointAddress
. Pase un valor de cadena que especifique el WSDL al servicio AEM Forms (por ejemplo,http://localhost:8080/soap/services/SignatureService?WSDL
). No necesita usar el atributolc_version
. Este atributo se utiliza al crear una referencia de servicio). -
Cree un objeto
System.ServiceModel.BasicHttpBinding
obteniendo el valor del campoSignatureServiceClient.Endpoint.Binding
. Convertir el valor devuelto enBasicHttpBinding
. -
Establezca el campo
MessageEncoding
del objetoSystem.ServiceModel.BasicHttpBinding
enWSMessageEncoding.Mtom
. Este valor garantiza que se utiliza MTOM. -
Habilite la autenticación HTTP básica realizando las siguientes tareas:
- AEM Asigne el nombre de usuario de los formularios de la al campo
SignatureServiceClient.ClientCredentials.UserName.UserName
. - Asigne el valor de contraseña correspondiente al campo
SignatureServiceClient.ClientCredentials.UserName.Password
. - Asigne el valor constante
HttpClientCredentialType.Basic
al campoBasicHttpBindingSecurity.Transport.ClientCredentialType
. - Asigne el valor constante
BasicHttpSecurityMode.TransportCredentialOnly
al campoBasicHttpBindingSecurity.Security.Mode
.
- AEM Asigne el nombre de usuario de los formularios de la al campo
-
-
Obtenga el documento del PDF que contiene el campo de firma que desea modificar
- Crear un objeto
BLOB
mediante su constructor. El objetoBLOB
se usa para almacenar el documento de PDF que contiene el campo de firma que se va a modificar. - Cree un objeto
System.IO.FileStream
invocando su constructor y pasando un valor de cadena que represente la ubicación de archivo del documento de PDF y el modo en que se abrirá el archivo. - Cree una matriz de bytes que almacene el contenido del objeto
System.IO.FileStream
. Puede determinar el tamaño de la matriz de bytes obteniendo la propiedadLength
del objetoSystem.IO.FileStream
. - Rellene la matriz de bytes con datos de secuencia invocando el método
Read
del objetoSystem.IO.FileStream
y pasando la matriz de bytes, la posición inicial y la longitud de secuencia para que se lea. - Rellene el objeto
BLOB
asignando su propiedadMTOM
al contenido de la matriz de bytes.
- Crear un objeto
-
Establecer valores de diccionario
- Crear un objeto
PDFSignatureFieldProperties
mediante su constructor. Este objeto almacena información del diccionario de bloqueo de campos de firma y del diccionario de valores semilla. - Crear un objeto
PDFSeedValueOptionSpec
mediante su constructor. Este objeto permite definir los valores del diccionario de valores semilla. - No permitir cambios en el documento del PDF asignando el valor de enumeración
MDPPermissions.NoChanges
al miembro de datosmdpValue
del objetoPDFSeedValueOptionSpec
. - Crear un objeto
FieldMDPOptionSpec
mediante su constructor. Este objeto permite establecer los valores del diccionario de bloqueo de campos de firma. - Bloquee todos los campos del documento de PDF asignando el valor de enumeración
FieldMDPAction.ALL
al miembro de datosmdpValue
del objetoFieldMDPOptionSpec
. - Para establecer la información del diccionario de valores semilla, asigne el objeto
PDFSeedValueOptionSpec
al miembro de datosseedValue
del objetoPDFSignatureFieldProperties
. - Establezca la información del diccionario de bloqueo de campos de firma asignando el objeto
FieldMDPOptionSpec
al miembro de datosfieldMDP
del objetoPDFSignatureFieldProperties
.
NOTA
Para ver todos los valores de diccionario de valores semilla que puede establecer, consulte la referencia de clasePDFSeedValueOptionSpec
. (Consulte Referencia de la API de AEM Forms). - Crear un objeto
-
Modificación del campo de firma
Modifique el campo de firma invocando el método
modifySignatureField
del objetoSignatureServiceClient
y pasando los siguientes valores:- El objeto
BLOB
que almacena el documento de PDF que contiene el campo de firma que se va a modificar - Un valor de cadena que especifica el nombre del campo de firma
- El objeto
PDFSignatureFieldProperties
que almacena la información del diccionario de bloqueo de campos de firma y del diccionario de valores semilla
El método
modifySignatureField
devuelve un objetoBLOB
que almacena un documento de PDF que contiene el campo de firma modificado. - El objeto
-
Guardar el documento de PDF como archivo de PDF
- Cree un objeto
System.IO.FileStream
invocando su constructor y pasando un valor de cadena que represente la ubicación de archivo del documento de PDF que contendrá el campo de firma y el modo en que se abrirá el archivo. - Cree una matriz de bytes que almacene el contenido del objeto
BLOB
que devuelve el métodoaddSignatureField
. Rellene la matriz de bytes obteniendo el valor del miembro de datosMTOM
del objetoBLOB
. - Cree un objeto
System.IO.BinaryWriter
invocando su constructor y pasando el objetoSystem.IO.FileStream
. - Escriba el contenido de la matriz de bytes en un archivo PDF invocando el método
Write
del objetoSystem.IO.BinaryWriter
y pasando la matriz de bytes.
- Cree un objeto