Procesar formularios en el cliente rendering-forms-at-the-client
Procesar formularios en el cliente rendering-forms-at-the-client-inner
Puede optimizar la entrega del contenido del PDF y mejorar la capacidad del servicio Forms para gestionar la carga de red mediante la función de renderización del lado del cliente de Acrobat o Adobe Reader. Este proceso se conoce como procesamiento de un formulario en el cliente. Para procesar un formulario en el cliente, el dispositivo cliente (normalmente un explorador web) debe utilizar Acrobat 7.0 o Adobe Reader 7.0 o posterior.
Los cambios en un formulario resultantes de la ejecución de secuencias de comandos en el servidor no se reflejan en un formulario procesado en el cliente a menos que el subformulario raíz contenga la variable restoreState atributo que está establecido en auto. Para obtener más información sobre este atributo, consulte Diseñador de Forms.
Resumen de los pasos summary-of-steps
Para procesar un formulario en el cliente, realice las siguientes tareas:
- Incluir archivos de proyecto.
- Cree un objeto de API de cliente de Forms.
- Establezca las opciones de tiempo de ejecución de procesamiento del cliente.
- Representar un formulario en el cliente.
- Escriba el formulario en el explorador web del cliente.
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.
Creación de un objeto de API de cliente de Forms
Para poder realizar mediante programación una operación de API de cliente de servicio de Forms, debe crear un cliente de servicio de Forms. Si utiliza la API de Java, cree un FormsServiceClient objeto. Si utiliza la API del servicio web de Forms, cree un FormsService objeto.
Establecer las opciones de ejecución de procesamiento del cliente
Debe definir la opción tiempo de ejecución de procesamiento del cliente para procesar un formulario en el cliente configurando la variable RenderAtClient opción de tiempo de ejecución a true. Esto hace que el formulario se envíe al dispositivo cliente en el que se procese. If RenderAtClient es auto (el valor predeterminado), el diseño de formulario determina si el formulario se procesa en el cliente. El diseño de formulario debe ser un diseño de formulario con una presentación flexible.
Una opción opcional de tiempo de ejecución que puede establecer es la SeedPDF . La variable SeedPDF combina el contenedor de PDF (documento de PDF semilla) con el diseño de formulario y los datos XML. Tanto el diseño de formulario como los datos XML se envían a Acrobat o Adobe Reader, donde se procesa el formulario. La variable SeedPDF se puede utilizar cuando el equipo cliente no tiene fuentes que se utilicen en el formulario, como cuando un usuario final no tiene licencia para utilizar una fuente para la que el propietario del formulario tenga licencia.
Puede utilizar Designer para crear un archivo de PDF dinámico simple y utilizarlo como archivo de PDF semilla. Se requieren los siguientes pasos para realizar esta tarea:
- Determine si debe incrustar las fuentes dentro del archivo del PDF semilla. El archivo del PDF semilla deberá contener las fuentes adicionales requeridas por el formulario que se está procesando. Al incrustar fuentes en el archivo del PDF semilla, asegúrese de no infringir ningún acuerdo de licencia de fuentes. En Designer, puede determinar si las fuentes se pueden incrustar legalmente. Al guardar, si hay fuentes que no se pueden incrustar en el formulario, Designer muestra un mensaje con las fuentes que no se pueden incrustar. Este mensaje no se muestra en Designer en documentos PDF estáticos.
- Si está creando el archivo de PDF semilla en Designer, se recomienda que, como mínimo, agregue un campo de texto que contenga un mensaje. El mensaje debe dirigirse a los usuarios de versiones anteriores de Adobe Reader indicando que necesitan Acrobat 7.0 o posterior, o Adobe Reader 7.0 o posterior para ver el documento.
- Guarde el archivo del PDF semilla como un archivo del PDF dinámico con la extensión de nombre de archivo del PDF.
Representar un formulario en el cliente
Para procesar un formulario en el cliente, debe asegurarse de que las opciones de tiempo de ejecución de representación del cliente se incluyen en la lógica de la aplicación para procesar un formulario.
Escribir el flujo de datos del formulario en el explorador web del cliente
El servicio Forms crea un flujo de datos de formulario que debe escribir en el explorador web del cliente. Cuando se escribe en el explorador web del cliente, el formulario lo representa Acrobat 7.0 o Adobe Reader 7.0 o posterior y es visible para el usuario.
Consulte también
Representar un formulario en el cliente mediante la API de Java
Representar un formulario en el cliente mediante la API de servicio web
Inclusión de archivos de biblioteca Java de AEM Forms
Configuración de las propiedades de conexión
Inicio rápido de la API del servicio de Forms
Pasar documentos al servicio de Forms
Creación de aplicaciones web que procesen Forms
Representar un formulario en el cliente mediante la API de Java render-a-form-at-the-client-using-the-java-api
Representar un formulario en el cliente mediante la API de Forms (Java):
-
Incluir archivos de proyecto
Incluya archivos JAR del cliente, como adobe-forms-client.jar, en la ruta de clase de su proyecto Java.
-
Creación de un objeto de API de cliente de Forms
- Cree un
ServiceClientFactoryobjeto que contiene propiedades de conexión. - Cree un
FormsServiceClientusando su constructor y pasando elServiceClientFactoryobjeto.
- Cree un
-
Establecer las opciones de ejecución de procesamiento del cliente
- Cree un
PDFFormRenderSpecusando su constructor. - Configure las variables
RenderAtClientopción en tiempo de ejecución invocando la variablePDFFormRenderSpecdel objetosetRenderAtClientmétodo y pasar el valor de enumeraciónRenderAtClient.Yes.
- Cree un
-
Representar un formulario en el cliente
Invocar el
FormsServiceClientdel objetorenderPDFFormy pase los siguientes valores:- Un valor de cadena que especifica el nombre del diseño de 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 completa, como
Applications/FormsApplication/1.0/FormsFolder/Loan.xdp. - A
com.adobe.idp.Documentobjeto que contiene datos para combinar con el formulario. Si no desea combinar datos, pase un vacíocom.adobe.idp.Documentobjeto. - A
PDFFormRenderSpecque almacena las opciones en tiempo de ejecución necesarias para procesar un formulario en el cliente. - A
URLSpecobjeto que contiene valores de URI necesarios para el servicio Forms para procesar un formulario. - A
java.util.HashMapque almacena archivos adjuntos. Este es un parámetro opcional y puede especificarnullsi no desea adjuntar archivos al formulario.
La variable
renderPDFFormel método devuelve unFormsResultobjeto que contiene un flujo de datos de formulario que debe escribirse en el explorador web del cliente. - Un valor de cadena que especifica el nombre del diseño de 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 completa, como
-
Escribir el flujo de datos del formulario en el explorador web del cliente
- Cree un
com.adobe.idp.Documentinvocando el objetoFormsResultobjeto ‘sgetOutputContentmétodo. - Obtenga el tipo de contenido de la variable
com.adobe.idp.Documentinvocando sugetContentTypemétodo. - Configure las variables
javax.servlet.http.HttpServletResponsetipo de contenido del objeto invocando susetContentTypey pasar el tipo de contenido de la variablecom.adobe.idp.Documentobjeto. - Cree un
javax.servlet.ServletOutputStreamobjeto utilizado para escribir el flujo de datos del formulario en el explorador web del cliente invocando la variablejavax.servlet.http.HttpServletResponsedel objetogetOutputStreammétodo. - Cree un
java.io.InputStreaminvocando el objetocom.adobe.idp.Documentdel objetogetInputStreammétodo. - Cree una matriz de bytes y rellénela con la secuencia de datos del formulario invocando la variable
InputStreamdel objetoready pasando la matriz de bytes como argumento. - Invocar el
javax.servlet.ServletOutputStreamdel objetowritemétodo para enviar la secuencia de datos del formulario al explorador web del cliente. Pase la matriz de bytes a lawritemétodo.
- Cree un
Consulte también
Inicio rápido (modo SOAP): Representación de un formulario en el cliente mediante la API de Java
Inclusión de archivos de biblioteca Java de AEM Forms
Configuración de las propiedades de conexión
Representar un formulario en el cliente mediante la API de servicio web render-a-form-at-the-client-using-the-web-service-api
Representar un formulario en el cliente mediante la API de Forms (servicio web):
-
Incluir archivos de proyecto
- Cree clases de proxy Java que consuman el WSDL del servicio Forms.
- Incluya las clases proxy de Java en la ruta de clase.
-
Creación de un objeto de API de cliente de Forms
Cree un
FormsServicey establezca los valores de autenticación. -
Establecer las opciones de ejecución de procesamiento del cliente
- Cree un
PDFFormRenderSpecusando su constructor. - Configure las variables
RenderAtClientopción en tiempo de ejecución invocando la variablePDFFormRenderSpecdel objetosetRenderAtClientmétodo y pasar el valor de cadenaRenderAtClient.Yes.
- Cree un
-
Representar un formulario en el cliente
Invocar el
FormsServicedel objetorenderPDFFormy pase los siguientes valores:- Un valor de cadena que especifica el nombre del diseño de 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 completa, como
Applications/FormsApplication/1.0/FormsFolder/Loan.xdp. - A
BLOBobjeto que contiene datos para combinar con el formulario. Si no desea combinar datos, pasenull. (Consulte Rellenado previo de Forms con diseños flexibles.) - A
PDFFormRenderSpecque almacena las opciones en tiempo de ejecución necesarias para procesar un formulario en el cliente. - A
URLSpecque contiene valores de URI necesarios para el servicio Forms. - A
java.util.HashMapque almacena archivos adjuntos. Este es un parámetro opcional y puede especificarnullsi no desea adjuntar archivos al formulario. - Un vacío
com.adobe.idp.services.holders.BLOBHolderobjeto que rellena el método . Este parámetro se utiliza para almacenar el formulario de PDF procesado. - Un vacío
javax.xml.rpc.holders.LongHolderobjeto que rellena el método . (Este argumento almacenará el número de páginas del formulario). - Un vacío
javax.xml.rpc.holders.StringHolderobjeto que rellena el método . (Este argumento almacenará el valor de configuración regional). - Un vacío
com.adobe.idp.services.holders.FormsResultHolderque contendrá los resultados de esta operación.
La variable
renderPDFFormrellena elcom.adobe.idp.services.holders.FormsResultHolderobjeto que se pasa como el último valor de argumento con un flujo de datos de formulario que debe escribirse en el explorador web del cliente. - Un valor de cadena que especifica el nombre del diseño de 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 completa, como
-
Escribir el flujo de datos del formulario en el explorador web del cliente
- Cree un
FormResultobteniendo el valor decom.adobe.idp.services.holders.FormsResultHolderdel objetovaluemiembro de datos. - Cree un
BLOBobjeto que contiene datos de formulario invocando la variableFormsResultdel objetogetOutputContentmétodo. - Obtenga el tipo de contenido de la variable
BLOBinvocando sugetContentTypemétodo. - Configure las variables
javax.servlet.http.HttpServletResponsetipo de contenido del objeto invocando susetContentTypey pasar el tipo de contenido de la variableBLOBobjeto. - Cree un
javax.servlet.ServletOutputStreamobjeto utilizado para escribir el flujo de datos del formulario en el explorador web del cliente invocando la variablejavax.servlet.http.HttpServletResponsedel objetogetOutputStreammétodo. - Cree una matriz de bytes y rellénela invocando la variable
BLOBdel objetogetBinaryDatamétodo. Esta tarea asigna el contenido de la variableFormsResulta la matriz de bytes. - Invocar el
javax.servlet.http.HttpServletResponsedel objetowritemétodo para enviar la secuencia de datos del formulario al explorador web del cliente. Pase la matriz de bytes a lawritemétodo.
- Cree un
Consulte también
Procesar formularios en el cliente
Invocación de AEM Forms mediante la codificación Base64