Procesar un formulario en el cliente mediante la API de Java

Procesar un formulario en el cliente mediante la API de Forms (Java):

  1. Incluir archivos de proyecto

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

  2. Crear un objeto de API de cliente de Forms

    • Cree un objeto ServiceClientFactory que contenga propiedades de conexión.
    • Cree un objeto FormsServiceClient utilizando su constructor y pasando el objeto ServiceClientFactory.
  3. Establecer opciones de tiempo de ejecución de procesamiento de cliente

    • Crear un objeto PDFFormRenderSpec mediante su constructor.
    • Establezca la opción de tiempo de ejecución RenderAtClient invocando el método setRenderAtClient del objeto PDFFormRenderSpec y pasando el valor de enumeración RenderAtClient.Yes.
  4. Procesar un formulario en el cliente

    Invoque el método renderPDFForm del objeto FormsServiceClient y pase los siguientes valores:

    • Un valor de cadena que especifica el nombre del diseño del formulario, incluida la extensión del nombre de archivo. Si hace referencia a un diseño de formulario que forma parte de una aplicación de AEM Forms, asegúrese de especificar la ruta de acceso completa, como Applications/FormsApplication/1.0/FormsFolder/Loan.xdp.
    • Objeto com.adobe.idp.Document que contiene datos para combinar con el formulario. Si no desea combinar datos, pase un objeto com.adobe.idp.Document vacío.
    • Un objeto PDFFormRenderSpec que almacena las opciones en tiempo de ejecución necesarias para procesar un formulario en el cliente.
    • Un objeto URLSpec que contiene valores de URI requeridos por el servicio Forms para procesar un formulario.
    • Objeto java.util.HashMap que almacena datos adjuntos de archivos. Este es un parámetro opcional y puede especificar null si no desea adjuntar archivos al formulario.

    El método renderPDFForm devuelve un objeto FormsResult que contiene una secuencia de datos de formulario que debe escribirse en el explorador web del cliente.

  5. Escribir el flujo de datos del formulario en el explorador web del cliente

    • Cree un objeto com.adobe.idp.Document invocando el método getOutputContent del objeto FormsResult.
    • Obtenga el tipo de contenido del objeto com.adobe.idp.Document invocando su método getContentType.
    • Establezca el tipo de contenido del objeto javax.servlet.http.HttpServletResponse invocando su método setContentType y pasando el tipo de contenido del objeto com.adobe.idp.Document.
    • Cree un objeto javax.servlet.ServletOutputStream utilizado para escribir el flujo de datos de formulario en el explorador web del cliente invocando el método getOutputStream del objeto javax.servlet.http.HttpServletResponse.
    • Cree un objeto java.io.InputStream invocando el método getInputStream del objeto com.adobe.idp.Document.
    • Cree una matriz de bytes y rellénela con la secuencia de datos de formulario invocando el método read del objeto InputStream y pasando la matriz de bytes como argumento.
    • Invoque el método write del objeto javax.servlet.ServletOutputStream para enviar el flujo de datos de formulario al explorador web del cliente. Pase la matriz de bytes al método write.

Procesar un formulario en el cliente mediante la API de servicio web

Procesar un formulario en el cliente mediante la API de Forms (servicio web):

  1. Incluir archivos de proyecto

    • Cree clases de proxy Java que consuman el WSDL del servicio Forms.
    • Incluya las clases de proxy Java en la ruta de clase.
  2. Crear un objeto de API de cliente de Forms

    Cree un objeto FormsService y establezca los valores de autenticación.

  3. Establecer opciones de tiempo de ejecución de procesamiento de cliente

    • Crear un objeto PDFFormRenderSpec mediante su constructor.
    • Establezca la opción de tiempo de ejecución RenderAtClient invocando el método setRenderAtClient del objeto PDFFormRenderSpec y pasando el valor de cadena RenderAtClient.Yes.
  4. Procesar un formulario en el cliente

    Invoque el método renderPDFForm del objeto FormsService y pase los siguientes valores:

    • Un valor de cadena que especifica el nombre del diseño del formulario, incluida la extensión del nombre de archivo. Si hace referencia a un diseño de formulario que forma parte de una aplicación de Forms, asegúrese de especificar la ruta de acceso completa, como Applications/FormsApplication/1.0/FormsFolder/Loan.xdp.
    • Objeto BLOB que contiene datos para combinar con el formulario. Si no desea combinar datos, pase null. (Consulte Rellenado previo de Forms con diseños flexibles).
    • Un objeto PDFFormRenderSpec que almacena las opciones en tiempo de ejecución necesarias para procesar un formulario en el cliente.
    • Un objeto URLSpec que contiene valores de URI requeridos por el servicio Forms.
    • Objeto java.util.HashMap que almacena datos adjuntos de archivos. Este es un parámetro opcional y puede especificar null si no desea adjuntar archivos al formulario.
    • Un objeto com.adobe.idp.services.holders.BLOBHolder vacío que ha rellenado el método. Este parámetro se utiliza para almacenar el formulario de PDF procesado.
    • Un objeto javax.xml.rpc.holders.LongHolder vacío que ha rellenado el método. (Este argumento almacenará el número de páginas en el formulario).
    • Un objeto javax.xml.rpc.holders.StringHolder vacío que ha rellenado el método. (Este argumento almacenará el valor de configuración regional).
    • Un objeto com.adobe.idp.services.holders.FormsResultHolder vacío que contendrá los resultados de esta operación.

    El método renderPDFForm rellena el objeto com.adobe.idp.services.holders.FormsResultHolder que se pasa como el último valor de argumento con una secuencia de datos de formulario que debe escribirse en el explorador web del cliente.

  5. Escribir el flujo de datos del formulario en el explorador web del cliente

    • Cree un objeto FormResult obteniendo el valor del miembro de datos value del objeto com.adobe.idp.services.holders.FormsResultHolder.
    • Cree un objeto BLOB que contenga datos de formulario invocando el método getOutputContent del objeto FormsResult.
    • Obtenga el tipo de contenido del objeto BLOB invocando su método getContentType.
    • Establezca el tipo de contenido del objeto javax.servlet.http.HttpServletResponse invocando su método setContentType y pasando el tipo de contenido del objeto BLOB.
    • Cree un objeto javax.servlet.ServletOutputStream utilizado para escribir el flujo de datos de formulario en el explorador web del cliente invocando el método getOutputStream del objeto javax.servlet.http.HttpServletResponse.
    • Cree una matriz de bytes y rellénela invocando el método getBinaryData del objeto BLOB. Esta tarea asigna el contenido del objeto FormsResult a la matriz de bytes.
    • Invoque el método write del objeto javax.servlet.http.HttpServletResponse para enviar el flujo de datos de formulario al explorador web del cliente. Pase la matriz de bytes al método write.
recommendation-more-help