Creación de documentos de PDF con datos XML enviados creating-pdf-documents-with-submittedxml-data
Creación de documentos de PDF con datos XML enviados creating-pdf-documents-with-submitted-xml-data
Las aplicaciones basadas en la Web que permiten a los usuarios rellenar formularios interactivos requieren que los datos se envíen de nuevo al servidor. Con el servicio Forms, puede recuperar los datos de formulario que el usuario introdujo en un formulario interactivo. A continuación, puede pasar los datos del formulario a otra operación de servicio de AEM Forms y crear un documento de PDF con los datos.
Considere el siguiente flujo de trabajo que incluye tres servicios de AEM Forms:
- Un usuario envía datos XML al servicio Forms desde una aplicación basada en Web.
- El servicio Forms se utiliza para procesar los campos de formulario enviado y de formulario extraído. Se pueden procesar los datos del formulario. Por ejemplo, los datos se pueden enviar a una base de datos empresarial.
- Los datos del formulario se envían al servicio Output para crear un documento de PDF no interactivo.
- El documento de PDF no interactivo se almacena en Content Services (obsoleto).
El diagrama siguiente proporciona una representación visual de este flujo de trabajo.
Una vez que el usuario envía el formulario desde el explorador web del cliente, el documento de PDF no interactivo se almacena en Content Services (obsoleto). La siguiente ilustración muestra un documento de PDF almacenado en Content Services (obsoleto).
Resumen de los pasos summary-of-steps
Para crear un documento de PDF no interactivo con datos XML enviados y almacenarlos en el documento de PDF en Content Services (obsoleto), realice las siguientes tareas:
- Incluir archivos de proyecto.
- Crear objetos Forms, Output y Document Management.
- Recupere los datos del formulario mediante el servicio Forms.
- Cree un documento de PDF no interactivo mediante el servicio Output .
- Almacene el formulario de PDF en Content Services (obsoleto) mediante el servicio de Gestión de documentos.
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 objetos de Forms, Output y Document Management
Antes de realizar una operación de API de servicio de Forms mediante programación, cree un objeto de API de cliente de Forms. Del mismo modo, como este flujo de trabajo invoca los servicios de Output y Document Management, cree un objeto de API de cliente de salida y un objeto de API de cliente de Document Management.
Recuperación de datos de formulario mediante el servicio Forms
Recupere los datos de formulario enviados al servicio Forms. Puede procesar los datos enviados para satisfacer los requisitos empresariales. Por ejemplo, puede almacenar datos de formulario en una base de datos de empresa. Sin embargo, para crear un documento de PDF no interactivo, los datos del formulario se pasan al servicio Output .
Cree un documento de PDF no interactivo mediante el servicio Output .
Utilice el servicio Output para crear un documento PDF no interactivo basado en un diseño de formulario y en datos de formulario XML. En el flujo de trabajo, los datos del formulario se recuperan del servicio Forms.
Almacene el formulario de PDF en Content Services (obsoleto) mediante el servicio de gestión de documentos
Utilice la API de servicio de gestión de documentos para almacenar un documento de PDF en Content Services (obsoleto).
Consulte también
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
Creación de un documento de PDF con datos XML enviados mediante la API de Java create-a-pdf-document-with-submitted-xml-data-using-the-java-api
Cree un documento PDF con los datos XML enviados mediante la API de Forms, salida y gestión de documentos (Java):
-
Incluir archivos de proyecto
Incluya archivos JAR del cliente, como adobe-forms-client.jar, adobe-output-client.jar y adobe-contentservices-client.jar en la ruta de clase de su proyecto Java.
-
Crear objetos de Forms, Output y Document Management
- Cree un
ServiceClientFactory
objeto que contiene propiedades de conexión. - Cree un
FormsServiceClient
usando su constructor y pasando elServiceClientFactory
objeto. - Cree un
OutputClient
usando su constructor y pasando elServiceClientFactory
objeto. - Cree un
DocumentManagementServiceClientImpl
usando su constructor y pasando elServiceClientFactory
objeto.
- Cree un
-
Recuperación de datos de formulario mediante el servicio Forms
-
Invocar el
FormsServiceClient
del objetoprocessFormSubmission
y pase los siguientes valores:- La variable
com.adobe.idp.Document
objeto que contiene los datos del formulario. - Un valor de cadena que especifica variables de entorno, incluidos todos los encabezados HTTP relevantes. Especifique el tipo de contenido que se va a gestionar especificando uno o más valores para la variable
CONTENT_TYPE
variable de entorno. Por ejemplo, para gestionar datos XML, especifique el siguiente valor de cadena para este parámetro:CONTENT_TYPE=text/xml
. - Un valor de cadena que especifica la variable
HTTP_USER_AGENT
valor de encabezado, comoMozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
. - A
RenderOptionsSpec
que almacena opciones en tiempo de ejecución.
La variable
processFormSubmission
el método devuelve unFormsResult
que contiene los resultados del envío del formulario. - La variable
-
Determine si el servicio Forms ha terminado de procesar los datos del formulario invocando la variable
FormsResult
del objetogetAction
método. Si este método devuelve el valor0
, los datos están listos para procesarse. -
Recupere los datos del formulario creando un
com.adobe.idp.Document
invocando el objetoFormsResult
del objetogetOutputContent
método. (Este objeto contiene datos de formulario que se pueden enviar al servicio Output ). -
Cree un
java.io.InputStream
invocando el objetojava.io.DataInputStream
constructor y pasar elcom.adobe.idp.Document
objeto. -
Cree un
org.w3c.dom.DocumentBuilderFactory
llamando al objeto estáticoorg.w3c.dom.DocumentBuilderFactory
del objetonewInstance
método. -
Cree un
org.w3c.dom.DocumentBuilder
invocando el objetoorg.w3c.dom.DocumentBuilderFactory
del objetonewDocumentBuilder
método. -
Cree un
org.w3c.dom.Document
invocando el objetoorg.w3c.dom.DocumentBuilder
del objetoparse
y pasando eljava.io.InputStream
objeto. -
Recupere el valor de cada nodo dentro del documento XML. Una forma de realizar esta tarea es crear un método personalizado que acepte dos parámetros: el
org.w3c.dom.Document
y el nombre del nodo cuyo valor desea recuperar. Este método devuelve un valor de cadena que representa el valor del nodo . En el ejemplo de código que sigue este proceso, se llama a este método personalizadogetNodeText
. Se muestra el cuerpo de este método.
-
-
Cree un documento de PDF no interactivo mediante el servicio Output .
Cree un documento de PDF invocando la variable
OutputClient
del objetogeneratePDFOutput
y pasando los siguientes valores:- A
TransformationFormat
valor de enumeración. Para generar un documento de PDF, especifiqueTransformationFormat.PDF
. - Un valor de cadena que especifica el nombre del diseño de formulario. Asegúrese de que el diseño de formulario sea compatible con los datos de formulario recuperados del servicio Forms.
- Un valor de cadena que especifica la raíz del contenido donde se encuentra el diseño de formulario.
- A
PDFOutputOptionsSpec
que contiene opciones de tiempo de ejecución del PDF. - A
RenderOptionsSpec
objeto que contiene opciones de procesamiento en tiempo de ejecución. - La variable
com.adobe.idp.Document
objeto que contiene el origen de datos XML que contiene los datos que se van a combinar con el diseño de formulario. Asegúrese de que elFormsResult
del objetogetOutputContent
método. - La variable
generatePDFOutput
devuelve un valorOutputResult
que contiene los resultados de la operación. - Recupere el documento de PDF no interactivo invocando la variable
OutputResult
del objetogetGeneratedDoc
método. Este método devuelve uncom.adobe.idp.Document
que representa el documento de PDF no interactivo.
- A
-
Almacene el formulario de PDF en Content Services (obsoleto) mediante el servicio de gestión de documentos
Añada el contenido invocando la variable
DocumentManagementServiceClientImpl
del objetostoreContent
y pasando los siguientes valores:- Un valor de cadena que especifica el almacén donde se agrega el contenido. El almacén predeterminado es
SpacesStore
. Este valor es un parámetro obligatorio. - Un valor de cadena que especifica la ruta completa del espacio donde se agrega el contenido (por ejemplo,
/Company Home/Test Directory
). Este valor es un parámetro obligatorio. - El nombre del nodo que representa el nuevo contenido (por ejemplo,
MortgageForm.pdf
). Este valor es un parámetro obligatorio. - Un valor de cadena que especifica el tipo de nodo. Para añadir contenido nuevo, como un archivo de PDF, especifique
{https://www.alfresco.org/model/content/1.0}content
. Este valor es un parámetro obligatorio. - A
com.adobe.idp.Document
que representa el contenido. Este valor es un parámetro obligatorio. - Un valor de cadena que especifica el valor de codificación (por ejemplo,
UTF-8
). Este valor es un parámetro obligatorio. - Un
UpdateVersionType
valor de enumeración que especifica cómo gestionar la información de versión (por ejemplo,UpdateVersionType.INCREMENT_MAJOR_VERSION
para aumentar la versión del contenido. ) Este valor es un parámetro obligatorio. - A
java.util.List
instancia que especifica aspectos relacionados con el contenido. Este valor es un parámetro opcional y puede especificarnull
. - A
java.util.Map
objeto que almacena atributos de contenido.
La variable
storeContent
el método devuelve unCRCResult
objeto que describe el contenido. Uso de unCRCResult
, puede, por ejemplo, obtener el valor de identificador único del contenido. Para realizar esta tarea, invoque la funciónCRCResult
del objetogetNodeUuid
método. - Un valor de cadena que especifica el almacén donde se agrega el contenido. El almacén predeterminado es
Consulte también
Inclusión de archivos de biblioteca Java de AEM Forms
Configuración de las propiedades de conexión