Los ejemplos de este documento solo son para AEM Forms en un entorno JEE.
Puede optimizar la entrega de contenido de PDF y mejorar la capacidad del servicio Forms para gestionar la carga de red mediante la capacidad de procesamiento del lado del cliente de Acrobat o Adobe Reader. Este proceso se conoce como procesar 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 realizados en un formulario como resultado de la ejecución de scripts del lado del servidor no se reflejan en un formulario que se procese en el cliente a menos que el subformulario raíz contenga el restoreState
atributo que se establece en auto
. Para obtener más información sobre este atributo, consulte Forms Designer.
Para obtener más información sobre el servicio Forms, consulte Referencia de servicios para AEM Forms.
Para procesar un formulario en el cliente, realice las siguientes tareas:
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.
Crear 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 opciones de tiempo de ejecución de procesamiento de cliente
Debe establecer la opción de tiempo de ejecución de representación de cliente para procesar un formulario en el cliente estableciendo la variable RenderAtClient
opción de tiempo de ejecución para true
. Esto hace que el formulario se envíe al dispositivo cliente donde se representa. 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 un diseño fluido.
Una opción de tiempo de ejecución opcional que puede establecer es la SeedPDF
opción. El 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. El 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 tiene licencia.
Puede utilizar Designer para crear un archivo PDF dinámico simple para utilizarlo como archivo PDF semilla. Se requieren los siguientes pasos para realizar esta tarea:
No es necesario definir la opción del PDF semilla en tiempo de ejecución para procesar un formulario en el cliente. Si no especifica un PDF semilla, el servicio Forms crea un PDF de shell que no contendrá objetos COS, pero sí un envoltorio de PDF con el contenido XDP real incrustado en él. Los pasos de esta sección no establecen la opción del PDF semilla en tiempo de ejecución. Para obtener información sobre los objetos COS, consulte la Guía de referencia de Adobe PDF.
Procesar un formulario en el cliente
Para procesar un formulario en el cliente, debe asegurarse de que las opciones de tiempo de ejecución de procesamiento del cliente estén incluidas 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 se procesa mediante Acrobat 7.0 o Adobe Reader 7.0 o posterior y es visible para el usuario.
Consulte también
Procesar un formulario en el cliente mediante la API de Java
Procesar un formulario en el cliente mediante la API de servicio web
Incluir archivos de biblioteca Java de AEM Forms
Estableciendo propiedades de conexión
Inicio rápido de la API del servicio de Forms
Pasar documentos al servicio de Forms
Crear aplicaciones web que procesen Forms
Procesar un formulario en el cliente mediante la API de Forms (Java):
Incluir archivos de proyecto
Incluya archivos JAR de cliente, como adobe-forms-client.jar, en la ruta de clase del proyecto Java.
Crear un objeto de API de cliente de Forms
ServiceClientFactory
que contiene las propiedades de conexión.FormsServiceClient
usando su constructor y pasando el objeto ServiceClientFactory
objeto.Establecer opciones de tiempo de ejecución de procesamiento de cliente
PDFFormRenderSpec
mediante su constructor.RenderAtClient
en tiempo de ejecución invocando la opción PDFFormRenderSpec
del objeto setRenderAtClient
y pasando el valor de enumeración RenderAtClient.Yes
.Procesar un formulario en el cliente
Invoque el FormsServiceClient
del objeto renderPDFForm
y pasar los siguientes valores:
Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
.com.adobe.idp.Document
que contiene datos para combinar con el formulario. Si no desea combinar datos, pase un vacío com.adobe.idp.Document
objeto.PDFFormRenderSpec
que almacena las opciones en tiempo de ejecución necesarias para procesar un formulario en el cliente.URLSpec
que contiene valores de URI requeridos por el servicio Forms para procesar un formulario.java.util.HashMap
que almacena archivos adjuntos. Este es un parámetro opcional y puede especificar null
si no desea adjuntar archivos al formulario.El renderPDFForm
El método devuelve un valor FormsResult
que contiene un flujo de datos de formulario que debe escribirse en el explorador web cliente.
Escribir el flujo de datos del formulario en el explorador web del cliente
com.adobe.idp.Document
invocando el objeto de FormsResult
objeto ‘s getOutputContent
método.com.adobe.idp.Document
invocando su objeto getContentType
método.javax.servlet.http.HttpServletResponse
tipo de contenido del objeto invocando su setContentType
y pasando el tipo de contenido del com.adobe.idp.Document
objeto.javax.servlet.ServletOutputStream
objeto utilizado para escribir el flujo de datos de formulario en el explorador web del cliente invocando el javax.servlet.http.HttpServletResponse
del objeto getOutputStream
método.java.io.InputStream
invocando el objeto de com.adobe.idp.Document
del objeto getInputStream
método.InputStream
del objeto read
y pasando la matriz de bytes como argumento.javax.servlet.ServletOutputStream
del objeto write
para enviar el flujo de datos de formulario al explorador web del cliente. Pase la matriz de bytes a write
método.Consulte también
Inicio rápido (modo SOAP): Procesamiento de un formulario en el cliente mediante la API de Java
Incluir archivos de biblioteca Java de AEM Forms
Estableciendo propiedades de conexión
Procesar un formulario en el cliente mediante la API de Forms (servicio web):
Incluir archivos de proyecto
Crear un objeto de API de cliente de Forms
Crear un FormsService
y establezca los valores de autenticación.
Establecer opciones de tiempo de ejecución de procesamiento de cliente
PDFFormRenderSpec
mediante su constructor.RenderAtClient
en tiempo de ejecución invocando la opción PDFFormRenderSpec
del objeto setRenderAtClient
método y pasar el valor de cadena RenderAtClient.Yes
.Procesar un formulario en el cliente
Invoque el FormsService
del objeto renderPDFForm
y pasar los siguientes valores:
Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
.BLOB
que contiene datos para combinar con el formulario. Si no desea combinar los datos, apruebe null
. (Consulte Rellenado previo de Forms con diseños flexibles.)PDFFormRenderSpec
que almacena las opciones en tiempo de ejecución necesarias para procesar un formulario en el cliente.URLSpec
que contiene valores de URI requeridos por el servicio de Forms.java.util.HashMap
que almacena archivos adjuntos. Este es un parámetro opcional y puede especificar null
si no desea adjuntar archivos al formulario.com.adobe.idp.services.holders.BLOBHolder
objeto que rellena el método. Este parámetro se utiliza para almacenar el formulario de PDF procesado.javax.xml.rpc.holders.LongHolder
objeto que rellena el método. (Este argumento almacenará el número de páginas en el formulario).javax.xml.rpc.holders.StringHolder
objeto que rellena el método. (Este argumento almacenará el valor de configuración regional).com.adobe.idp.services.holders.FormsResultHolder
que contendrá los resultados de esta operación.El renderPDFForm
rellena el método com.adobe.idp.services.holders.FormsResultHolder
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.
Escribir el flujo de datos del formulario en el explorador web del cliente
FormResult
al obtener el valor de la variable com.adobe.idp.services.holders.FormsResultHolder
del objeto value
miembro de datos.BLOB
que contiene datos de formulario invocando el FormsResult
del objeto getOutputContent
método.BLOB
invocando su objeto getContentType
método.javax.servlet.http.HttpServletResponse
tipo de contenido del objeto invocando su setContentType
y pasando el tipo de contenido del BLOB
objeto.javax.servlet.ServletOutputStream
objeto utilizado para escribir el flujo de datos de formulario en el explorador web del cliente invocando el javax.servlet.http.HttpServletResponse
del objeto getOutputStream
método.BLOB
del objeto getBinaryData
método. Esta tarea asigna el contenido del FormsResult
a la matriz de bytes.javax.servlet.http.HttpServletResponse
del objeto write
para enviar el flujo de datos de formulario al explorador web del cliente. Pase la matriz de bytes a write
método.Consulte también
Procesar formularios en el cliente
Invocar AEM Forms con codificación Base64