Los ejemplos y ejemplos de este documento son solo para AEM Forms en un entorno JEE.
Puede optimizar la entrega de contenido 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 el atributo restoreState
definido como 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.
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 objeto FormsServiceClient
. Si utiliza la API de servicio web de Forms, cree un objeto FormsService
.
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 estableciendo la opción RenderAtClient
tiempo de ejecución en true
. Esto hace que el formulario se envíe al dispositivo cliente en el que se procese. Si 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 opción SeedPDF
. La opción SeedPDF
combina el contenedor de PDF (documento 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 opción 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 que el propietario del formulario tenga licencia para utilizar.
Puede utilizar Designer para crear un archivo PDF dinámico simple y utilizarlo como archivo PDF semilla. Se requieren los siguientes pasos para realizar esta tarea:
No es necesario definir la opción de ejecución del PDF semilla para procesar un formulario en el cliente. Si no especifica un PDF semilla, el servicio de Forms crea un PDF raíz que no contendrá objetos COS pero contendrá un envoltorio PDF con el contenido XDP real incrustado dentro. Los pasos de esta sección no establecen la opción de tiempo de ejecución del PDF semilla. Para obtener información sobre los objetos COS, consulte la guía de referencia de Adobe 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 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
ServiceClientFactory
que contenga propiedades de conexión.FormsServiceClient
utilizando su constructor y pasando el objeto ServiceClientFactory
.Establecer las opciones de ejecución de procesamiento del cliente
PDFFormRenderSpec
utilizando su constructor.RenderAtClient
tiempo de ejecución invocando el método PDFFormRenderSpec
del objeto setRenderAtClient
y pasando el valor de enumeración RenderAtClient.Yes
.Representar un formulario en el cliente
Invoque el método FormsServiceClient
del objeto renderPDFForm
y pase 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 objeto com.adobe.idp.Document
vacío.PDFFormRenderSpec
que almacena las opciones en tiempo de ejecución necesarias para procesar un formulario en el cliente.URLSpec
que contiene valores de URI necesarios para el servicio Forms para procesar un formulario.java.util.HashMap
que almacena archivos adjuntos. Se trata de 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 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
com.adobe.idp.Document
invocando el método FormsResult
del objeto ‘s getOutputContent
.com.adobe.idp.Document
invocando su método getContentType
.javax.servlet.http.HttpServletResponse
invocando su método setContentType
y pasando el tipo de contenido del objeto com.adobe.idp.Document
.javax.servlet.ServletOutputStream
que se utilice para escribir el flujo de datos del formulario en el explorador web del cliente invocando el método javax.servlet.http.HttpServletResponse
del objeto getOutputStream
.java.io.InputStream
invocando el método com.adobe.idp.Document
del objeto getInputStream
.InputStream
del objeto read
y pasando la matriz de bytes como argumento.javax.servlet.ServletOutputStream
del objeto write
para enviar la secuencia de datos del formulario al explorador web del cliente. Pase la matriz de bytes al método write
.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 Forms (servicio web):
Incluir archivos de proyecto
Creación de un objeto de API de cliente de Forms
Cree un objeto FormsService
y establezca valores de autenticación.
Establecer las opciones de ejecución de procesamiento del cliente
PDFFormRenderSpec
utilizando su constructor.RenderAtClient
tiempo de ejecución invocando el método PDFFormRenderSpec
del objeto setRenderAtClient
y pasando el valor de cadena RenderAtClient.Yes
.Representar un formulario en el cliente
Invoque el método FormsService
del objeto renderPDFForm
y pase los siguientes valores:
Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
.BLOB
que contiene datos para combinar con el formulario. Si no desea combinar datos, pase null
. (Consulte Rellenado previo de Forms con diseños de posición variable).PDFFormRenderSpec
que almacena las opciones en tiempo de ejecución necesarias para procesar un formulario en el cliente.URLSpec
que contiene valores de URI necesarios para el servicio Forms.java.util.HashMap
que almacena archivos adjuntos. Se trata de un parámetro opcional y puede especificar null
si no desea adjuntar archivos al formulario.com.adobe.idp.services.holders.BLOBHolder
vacío que se rellena con el método . Este parámetro se utiliza para almacenar el formulario PDF procesado.javax.xml.rpc.holders.LongHolder
vacío que se rellena con el método . (Este argumento almacenará el número de páginas del formulario).javax.xml.rpc.holders.StringHolder
vacío que se rellena con el método . (Este argumento almacenará el valor de configuración regional).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 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
obteniendo el valor del miembro de datos com.adobe.idp.services.holders.FormsResultHolder
del objeto value
.BLOB
que contenga datos de formulario invocando el método FormsResult
del objeto getOutputContent
.BLOB
invocando su método getContentType
.javax.servlet.http.HttpServletResponse
invocando su método setContentType
y pasando el tipo de contenido del objeto BLOB
.javax.servlet.ServletOutputStream
que se utilice para escribir el flujo de datos del formulario en el explorador web del cliente invocando el método javax.servlet.http.HttpServletResponse
del objeto getOutputStream
.BLOB
del objeto getBinaryData
. Esta tarea asigna el contenido del objeto FormsResult
a la matriz de bytes.javax.servlet.http.HttpServletResponse
del objeto write
para enviar la secuencia de datos del formulario al explorador web del cliente. Pase la matriz de bytes al método write
.Consulte también