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.

NOTA
Algunos tipos de documento de PDF no permiten agregar mediante programación un campo de firma. Para obtener más información acerca del servicio Signature y la adición de campos de firma, vea Referencia de servicios para AEM Forms.

Resumen de los pasos

Para agregar un campo de firma a un documento de PDF, realice las siguientes tareas:

  1. Incluir archivos de proyecto.
  2. Cree un cliente de firma.
  3. Obtenga un documento de PDF al que se agregue un campo de firma.
  4. Agregue un campo de firma.
  5. 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

Estableciendo propiedades de conexión

Firma digital de documentos de PDF

Añadir campos de firma mediante la API de Java

Agregar un campo de firma mediante la API de firma (Java):

  1. Incluir archivos de proyecto

    Incluya archivos JAR de cliente, como adobe-signatures-client.jar, en la ruta de clase del proyecto Java.

  2. 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 objeto ServiceClientFactory.
  3. 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 objeto java.io.FileInputStream.
  4. 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 objeto SignatureServiceClient 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 pasar null.
    • Un objeto PDFSeedValueOptions que especifica varios valores en tiempo de ejecución. Este valor de parámetro es opcional y puede pasar null.

      El método addSignatureField devuelve un com.adobe.idp. Document objeto que representa un documento de PDF que contiene un campo de firma.

    NOTA
    Puede invocar el método addInvisibleSignatureField del objeto SignatureServiceClient para agregar un campo de firma invisible.
  5. 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étodo copyToFile del objeto Document para copiar el contenido del objeto Document en el archivo. Asegúrese de utilizar com.adobe.idp. Objeto Document devuelto por el método addSignatureField.

Agregar campos de firma mediante la API de servicio web

Para agregar un campo de firma mediante la API de firma (servicio web):

  1. 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
    Reemplace localhost por la dirección IP del servidor que hospeda AEM Forms.
  2. Crear un cliente de firma

    • Cree un objeto SignatureServiceClient utilizando su constructor predeterminado.

    • Cree un objeto SignatureServiceClient.Endpoint.Address mediante el constructor System.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 atributo lc_version. Este atributo se utiliza al crear una referencia de servicio).

    • Cree un objeto System.ServiceModel.BasicHttpBinding obteniendo el valor del campo SignatureServiceClient.Endpoint.Binding. Convertir el valor devuelto en BasicHttpBinding.

    • Establezca el campo MessageEncoding del objeto System.ServiceModel.BasicHttpBinding en WSMessageEncoding.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 campo BasicHttpBindingSecurity.Transport.ClientCredentialType.
      • Asigne el valor constante BasicHttpSecurityMode.TransportCredentialOnly al campo BasicHttpBindingSecurity.Security.Mode.
  3. Obtener un documento de PDF al que se agregue un campo de firma

    • Crear un objeto BLOB mediante su constructor. El objeto BLOB 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 propiedad Length del objeto System.IO.FileStream.
    • Rellene la matriz de bytes con datos de secuencia invocando el método Read del objeto System.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 propiedad MTOM con el contenido de la matriz de bytes.
  4. Agregar un campo de firma

    Agregue un campo de firma al documento de PDF invocando el método addSignatureField del objeto SignatureServiceClient 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 pasar null.
    • Un objeto PDFSeedValueOptions que especifica varios valores en tiempo de ejecución. Este valor de parámetro es opcional y puede pasar null.

    El método addSignatureField devuelve un objeto BLOB que representa un documento de PDF que contiene un campo de firma.

  5. 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étodo addSignatureField. Rellene la matriz de bytes obteniendo el valor del miembro de datos binaryData del objeto BLOB.
    • Cree un objeto System.IO.BinaryWriter invocando su constructor y pasando el objeto System.IO.FileStream.
    • Escriba el contenido de la matriz de bytes en un archivo PDF invocando el método Write del objeto System.IO.BinaryWriter y pasando la matriz de bytes.

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].

NOTA
Para obtener más información acerca del servicio Signature, consulte Referencia de servicios para AEM Forms

Resumen de los pasos

Para recuperar los nombres de los campos de firma, realice las siguientes tareas:

  1. Incluir archivos de proyecto.
  2. Cree un cliente de firma.
  3. Obtenga el documento del PDF que contiene los campos de firma.
  4. 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

Estableciendo propiedades de conexión

Adición de campos de firma

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):

  1. Incluir archivos de proyecto

    Incluya archivos JAR de cliente, como adobe-signatures-client.jar, en la ruta de clase del proyecto Java.

  2. 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 objeto ServiceClientFactory.
  3. 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 objeto java.io.FileInputStream.
  4. Recuperar los nombres de los campos de firma

    • Recupere los nombres de los campos de firma invocando el método getSignatureFieldList del objeto SignatureServiceClient y pasando el objeto com.adobe.idp.Document que contiene el documento de PDF que contiene los campos de firma. Este método devuelve un objeto java.util.List, en el que cada elemento contiene un objeto PDFSignatureField. 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 objeto PDFSignatureField independiente. Para obtener el nombre del campo de firma, invoque el método getName del objeto PDFSignatureField. Este método devuelve un valor de cadena que especifica el nombre del campo de firma.

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):

  1. 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
    Reemplace localhost por la dirección IP del servidor que hospeda AEM Forms.
  2. Crear un cliente de firma

    • Cree un objeto SignatureServiceClient utilizando su constructor predeterminado.

    • Cree un objeto SignatureServiceClient.Endpoint.Address mediante el constructor System.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 atributo lc_version. Este atributo se utiliza al crear una referencia de servicio).

    • Cree un objeto System.ServiceModel.BasicHttpBinding obteniendo el valor del campo SignatureServiceClient.Endpoint.Binding. Convertir el valor devuelto en BasicHttpBinding.

    • Establezca el campo MessageEncoding del objeto System.ServiceModel.BasicHttpBinding en WSMessageEncoding.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 campo BasicHttpBindingSecurity.Transport.ClientCredentialType.
      • Asigne el valor constante BasicHttpSecurityMode.TransportCredentialOnly al campo BasicHttpBindingSecurity.Security.Mode.
  3. Obtenga el documento del PDF que contiene los campos de firma

    • Crear un objeto BLOB mediante su constructor. El objeto BLOB 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 propiedad Length del objeto System.IO.FileStream.
    • Rellene la matriz de bytes con datos de secuencia invocando el método Read del objeto System.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 campo MTOM al contenido de la matriz de bytes.
  4. Recuperar los nombres de los campos de firma

    • Recupere los nombres de los campos de firma invocando el método getSignatureFieldList del objeto SignatureServiceClient y pasando el objeto BLOB que contiene el documento de PDF que contiene los campos de firma. Este método devuelve un objeto de colección MyArrayOfPDFSignatureField donde cada elemento contiene un objeto PDFSignatureField.
    • 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 objeto PDFSignatureField. Para obtener el nombre del campo de firma, invoque el método getName del objeto PDFSignatureField. Este método devuelve un valor de cadena que especifica el nombre del campo de firma.

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.

NOTA
Para obtener más información sobre el servicio Signature y la modificación de los campos de firma, vea Referencia de servicios para AEM Forms.

Resumen de los pasos

Para modificar los campos de firma en un documento de PDF, realice las siguientes tareas:

  1. Incluir archivos de proyecto.
  2. Cree un cliente de firma.
  3. Obtenga el documento del PDF que contiene el campo de firma que desea modificar.
  4. Establecer valores de diccionario.
  5. Modifique el campo de firma.
  6. 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

Inicios rápidos de API de Signature Service

Firma digital de documentos de PDF

Modificación de los campos de firma mediante la API de Java

Modificar un campo de firma mediante la API de firma (Java):

  1. Incluir archivos de proyecto

    Incluya archivos JAR de cliente, como adobe-signatures-client.jar, en la ruta de clase del proyecto Java.

  2. 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 objeto ServiceClientFactory.
  3. 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 objeto java.io.FileInputStream.
  4. Establecer valores de diccionario

    • Crear un objeto PDFSignatureFieldProperties mediante su constructor. Un objeto PDFSignatureFieldProperties 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 objeto PDFSeedValueOptionSpec y pasando el valor de enumeración MDPPermissions.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 objeto FieldMDPOptionSpec y pasando el valor de enumeración FieldMDPAction.ALL.
    • Para establecer la información del diccionario de valores de inicialización, invoque el método setSeedValue del objeto PDFSignatureFieldProperties y pase el objeto PDFSeedValueOptionSpec.
    • Establezca la información del diccionario de bloqueo de campos de firma invocando el método setFieldMDP del objeto PDFSignatureFieldProperties y pasando el objeto FieldMDPOptionSpec.
    NOTA
    Para ver todos los valores de diccionario de valores semilla que puede establecer, consulte la referencia de clase PDFSeedValueOptionSpec. (Consulte Referencia de la API de AEM Forms.)
  5. Modificación del campo de firma

    Modifique el campo de firma invocando el método modifySignatureField del objeto SignatureServiceClient 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 objeto com.adobe.idp.Document que almacena un documento de PDF que contiene el campo de firma modificado.

  6. 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 objeto com.adobe.idp.Document para copiar el contenido del objeto com.adobe.idp.Document en el archivo. Asegúrese de utilizar el objeto com.adobe.idp.Document que devolvió el método modifySignatureField.

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):

  1. 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
    Reemplace localhost por la dirección IP del servidor que hospeda AEM Forms.
  2. Crear un cliente de firma

    • Cree un objeto SignatureServiceClient utilizando su constructor predeterminado.

    • Cree un objeto SignatureServiceClient.Endpoint.Address mediante el constructor System.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 atributo lc_version. Este atributo se utiliza al crear una referencia de servicio).

    • Cree un objeto System.ServiceModel.BasicHttpBinding obteniendo el valor del campo SignatureServiceClient.Endpoint.Binding. Convertir el valor devuelto en BasicHttpBinding.

    • Establezca el campo MessageEncoding del objeto System.ServiceModel.BasicHttpBinding en WSMessageEncoding.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 campo BasicHttpBindingSecurity.Transport.ClientCredentialType.
      • Asigne el valor constante BasicHttpSecurityMode.TransportCredentialOnly al campo BasicHttpBindingSecurity.Security.Mode.
  3. Obtenga el documento del PDF que contiene el campo de firma que desea modificar

    • Crear un objeto BLOB mediante su constructor. El objeto BLOB 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 propiedad Length del objeto System.IO.FileStream.
    • Rellene la matriz de bytes con datos de secuencia invocando el método Read del objeto System.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 propiedad MTOM al contenido de la matriz de bytes.
  4. 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 datos mdpValue del objeto PDFSeedValueOptionSpec.
    • 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 datos mdpValue del objeto FieldMDPOptionSpec.
    • Para establecer la información del diccionario de valores semilla, asigne el objeto PDFSeedValueOptionSpec al miembro de datos seedValue del objeto PDFSignatureFieldProperties.
    • Establezca la información del diccionario de bloqueo de campos de firma asignando el objeto FieldMDPOptionSpec al miembro de datos fieldMDP del objeto PDFSignatureFieldProperties.
    NOTA
    Para ver todos los valores de diccionario de valores semilla que puede establecer, consulte la referencia de clase PDFSeedValueOptionSpec. (Consulte Referencia de la API de AEM Forms).
  5. Modificación del campo de firma

    Modifique el campo de firma invocando el método modifySignatureField del objeto SignatureServiceClient 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 objeto BLOB que almacena un documento de PDF que contiene el campo de firma modificado.

  6. 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étodo addSignatureField. Rellene la matriz de bytes obteniendo el valor del miembro de datos MTOM del objeto BLOB.
    • Cree un objeto System.IO.BinaryWriter invocando su constructor y pasando el objeto System.IO.FileStream.
    • Escriba el contenido de la matriz de bytes en un archivo PDF invocando el método Write del objeto System.IO.BinaryWriter y pasando la matriz de bytes.