Pasar documentos al servicio de Forms passing-documents-to-the-formsservice
Los ejemplos de este documento solo son para AEM Forms en un entorno JEE.
El servicio AEM Forms procesa PDF forms interactivos en dispositivos cliente, normalmente exploradores web, para recopilar información de los usuarios. Un formulario PDF interactivo se basa en un diseño de formulario que normalmente se guarda como archivo XDP y se crea en Designer. A partir de AEM Forms, puede pasar un com.adobe.idp.Document
que contiene el diseño de formulario al servicio Forms. A continuación, el servicio Forms procesa el diseño de formulario en la variable com.adobe.idp.Document
objeto.
Una ventaja de pasar un com.adobe.idp.Document
objeto del servicio de Forms es que otras operaciones del servicio devuelven un com.adobe.idp.Document
ejemplo. Es decir, puede obtener una com.adobe.idp.Document
instancia de otra operación de servicio y procesarla. Por ejemplo, supongamos que un archivo XDP se almacena en un nodo de Content Services (obsoleto) denominado /Company Home/Form Designs
, como se muestra en la siguiente ilustración.
Puede recuperar mediante programación Loan.xdp de Content Services (obsoleto) (obsoleto) y pasar el archivo XDP al servicio de Forms dentro de un com.adobe.idp.Document
objeto.
Resumen de los pasos summary-of-steps
Para pasar un documento obtenido de Content Services (obsoleto) (obsoleto) al servicio Forms, realice las siguientes tareas:
- Incluir archivos de proyecto.
- Cree un objeto de API de cliente de Forms y de Administración de documentos.
- Recupere el diseño de formulario de Content Services (obsoleto).
- Procese el formulario interactivo del PDF.
- Realice una acción con el flujo de datos del formulario.
Incluir archivos de proyecto
Incluya los archivos necesarios en el proyecto de desarrollo. Si está creando una aplicación cliente con Java, incluya los archivos JAR necesarios. Si utiliza servicios web, incluya los archivos proxy.
Crear un objeto de API de cliente de Forms y Administración de documentos
Para poder realizar mediante programación una operación de API de servicio de Forms, cree un objeto de API de cliente de Forms. Además, como este flujo de trabajo recupera un archivo XDP de los servicios de contenido (obsoleto), cree un objeto de API de administración de documentos.
Recuperar el diseño de formulario de Content Services (obsoleto)
Recupere el archivo XDP de los servicios de contenido (obsoleto) mediante Java o la API de servicio web. El archivo XDP se devuelve en un com.adobe.idp.Document
instancia de (o un BLOB
si utiliza servicios web). A continuación, puede pasar el com.adobe.idp.Document
al servicio Forms.
Procesar un formulario interactivo de PDF
Para procesar un formulario interactivo, pase el com.adobe.idp.Document
instancia devuelta por Content Services (obsoleta) al servicio Forms.
com.adobe.idp.Document
que contiene el diseño de formulario al servicio Forms. Dos nuevos métodos llamados renderPDFForm2
y renderHTMLForm2
aceptar un com.adobe.idp.Document
que contiene un diseño de formulario.Realizar una acción con el flujo de datos del formulario
Según el tipo de aplicación cliente, puede escribir el formulario en un explorador web de cliente o guardarlo como archivo de PDF. Una aplicación basada en web suele escribir el formulario en el explorador web. Sin embargo, una aplicación de escritorio suele guardar el formulario como un archivo de PDF.
Consulte también
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 mediante la API de Java pass-documents-to-the-forms-service-using-the-java-api
Pase un documento obtenido de Content Services (obsoleto) mediante el servicio Forms y la API de Content Services (obsoleto) (Java):
-
Incluir archivos de proyecto
Incluya archivos JAR de cliente, como adobe-forms-client.jar y adobe-contentservices-client.jar, en la ruta de clase del proyecto Java.
-
Crear un objeto de API de cliente de Forms y Administración de documentos
- Crear un
ServiceClientFactory
que contiene las propiedades de conexión. (Consulte Estableciendo propiedades de conexión.) - Crear un
FormsServiceClient
usando su constructor y pasando el objetoServiceClientFactory
objeto. - Crear un
DocumentManagementServiceClientImpl
usando su constructor y pasando el objetoServiceClientFactory
objeto.
- Crear un
-
Recuperar el diseño de formulario de Content Services (obsoleto)
Invoque el
DocumentManagementServiceClientImpl
del objetoretrieveContent
y pasar 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 contenido que se va a recuperar (por ejemplo,
/Company Home/Form Designs/Loan.xdp
). Este valor es un parámetro obligatorio. - Un valor de cadena que especifica la versión. Este valor es un parámetro opcional y puede pasar una cadena vacía. En este caso, se recupera la versión más reciente.
El
retrieveContent
El método devuelve un valorCRCResult
que contiene el archivo XDP. Obtenga unacom.adobe.idp.Document
invocando el métodoCRCResult
del objetogetDocument
método. - Un valor de cadena que especifica el almacén donde se agrega el contenido. El almacén predeterminado es
-
Procesar un formulario interactivo de PDF
Invoque el
FormsServiceClient
del objetorenderPDFForm2
y pasar los siguientes valores:- A
com.adobe.idp.Document
que contiene el diseño de formulario recuperado de Content Services (obsoleto). - A
com.adobe.idp.Document
que contiene datos para combinar con el formulario. Si no desea combinar datos, pase un vacíocom.adobe.idp.Document
objeto. - A
PDFFormRenderSpec
que almacena opciones en tiempo de ejecución. Este valor es un parámetro opcional y puede especificarnull
si no desea especificar opciones en tiempo de ejecución. - A
URLSpec
que contiene valores de URI. Este valor es un parámetro opcional y puede especificarnull
. - A
java.util.HashMap
que almacena archivos adjuntos. Este valor es un parámetro opcional y puede especificarnull
si no desea adjuntar archivos al formulario.
El
renderPDFForm
El método devuelve un valorFormsResult
que contiene un flujo de datos de formulario que debe escribirse en el explorador web cliente. - A
-
Realizar una acción con el flujo de datos del formulario
- Crear un
com.adobe.idp.Document
invocando el objeto deFormsResult
objeto ‘sgetOutputContent
método. - Obtenga el tipo de contenido del
com.adobe.idp.Document
invocando su objetogetContentType
método. - Configure las variables
javax.servlet.http.HttpServletResponse
tipo de contenido del objeto invocando susetContentType
y pasando el tipo de contenido delcom.adobe.idp.Document
objeto. - Crear un
javax.servlet.ServletOutputStream
objeto utilizado para escribir el flujo de datos de formulario en el explorador web del cliente invocando eljavax.servlet.http.HttpServletResponse
del objetogetOutputStream
método. - Crear un
java.io.InputStream
invocando el objeto decom.adobe.idp.Document
del objetogetInputStream
método. - Cree una matriz de bytes y rellénela con el flujo de datos de formulario invocando el método
InputStream
del objetoread
método. Pase la matriz de bytes como argumento. - Invoque el
javax.servlet.ServletOutputStream
del objetowrite
para enviar el flujo de datos de formulario al explorador web del cliente. Pase la matriz de bytes awrite
método.
- Crear un
Consulte también
Inicio rápido (modo SOAP): Pasar documentos al servicio de Forms mediante la API de Java
Incluir archivos de biblioteca Java de AEM Forms
Estableciendo propiedades de conexión
Pase documentos al servicio de Forms mediante la API de servicio web pass-documents-to-the-forms-service-using-the-web-service-api
Pase un documento obtenido de Content Services (obsoleto) mediante el servicio Forms y la API de Content Services (obsoleto) (servicio web):
-
Incluir archivos de proyecto
Cree un proyecto de Microsoft .NET que utilice MTOM. Dado que esta aplicación cliente invoca dos servicios de AEM Forms, cree dos referencias de servicio. Utilice la siguiente definición de WSDL para la referencia de servicio asociada al servicio de Forms:
http://localhost:8080/soap/services/FormsService?WSDL&lc_version=9.0.1
.Utilice la siguiente definición de WSDL para la referencia de servicio asociada al servicio de administración de documentos:
http://localhost:8080/soap/services/DocumentManagementService?WSDL&lc_version=9.0.1
.Debido a que el
BLOB
El tipo de datos es común a ambas referencias de servicio. Califique completamente elBLOB
tipo de datos al utilizarlo. En el inicio rápido del servicio web correspondiente, todas las etiquetasBLOB
Las instancias de están totalmente cualificadas.note note NOTE Reemplazar localhost
con la dirección IP del servidor que aloja AEM Forms. -
Crear un objeto de API de cliente de Forms y Administración de documentos
-
Crear un
FormsServiceClient
mediante su constructor predeterminado. -
Crear un
FormsServiceClient.Endpoint.Address
mediante el uso del objetoSystem.ServiceModel.EndpointAddress
constructor. Pase un valor de cadena que especifique el WSDL al servicio AEM Forms (por ejemplo,http://localhost:8080/soap/services/FormsService?WSDL
). No es necesario que utilice ellc_version
atributo. Este atributo se utiliza al crear una referencia de servicio). -
Crear un
System.ServiceModel.BasicHttpBinding
al obtener el valor de la variableFormsServiceClient.Endpoint.Binding
field. Convierta el valor devuelto enBasicHttpBinding
. -
Configure las variables
System.ServiceModel.BasicHttpBinding
del objetoMessageEncoding
field aWSMessageEncoding.Mtom
. Este valor garantiza que se utiliza MTOM. -
Habilite la autenticación HTTP básica realizando las siguientes tareas:
- AEM Asigne el nombre de usuario del formulario de la al campo
FormsServiceClient.ClientCredentials.UserName.UserName
. - Asigne el valor de contraseña correspondiente al campo
FormsServiceClient.ClientCredentials.UserName.Password
. - Asignar el valor constante
HttpClientCredentialType.Basic
al campoBasicHttpBindingSecurity.Transport.ClientCredentialType
.
- AEM Asigne el nombre de usuario del formulario de la al campo
-
Asignar el valor constante
BasicHttpSecurityMode.TransportCredentialOnly
al campoBasicHttpBindingSecurity.Security.Mode
.
note note NOTE Repita estos pasos para el DocumentManagementServiceClient
cliente de servicio. -
-
Recuperar el diseño de formulario de Content Services (obsoleto)
Recupere contenido invocando el
DocumentManagementServiceClient
del objetoretrieveContent
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 contenido que se va a recuperar (por ejemplo,
/Company Home/Form Designs/Loan.xdp
). Este valor es un parámetro obligatorio. - Un valor de cadena que especifica la versión. Este valor es un parámetro opcional y puede pasar una cadena vacía. En este caso, se recupera la versión más reciente.
- Un parámetro de salida de cadena que almacena el valor del vínculo de exploración.
- A
BLOB
parámetro de salida que almacena el contenido. Puede utilizar este parámetro de salida para recuperar el contenido. - A
ServiceReference1.MyMapOf_xsd_string_To_xsd_anyType
parámetro de salida que almacena atributos de contenido. - A
CRCResult
parámetro de salida. En lugar de utilizar este objeto, puede utilizar la variableBLOB
parámetro de salida para obtener el contenido.
- Un valor de cadena que especifica el almacén donde se agrega el contenido. El almacén predeterminado es
-
Procesar un formulario interactivo de PDF
Invoque el
FormsServiceClient
del objetorenderPDFForm2
y pasar los siguientes valores:- A
BLOB
que contiene el diseño de formulario recuperado de Content Services (obsoleto). - A
BLOB
que contiene datos para combinar con el formulario. Si no desea combinar datos, pase un vacíoBLOB
objeto. - A
PDFFormRenderSpec
que almacena opciones en tiempo de ejecución. Este valor es un parámetro opcional y puede especificarnull
si no desea especificar opciones en tiempo de ejecución. - A
URLSpec
que contiene valores de URI. Este valor es un parámetro opcional y puede especificarnull
. - A
Map
que almacena archivos adjuntos. Este valor es un parámetro opcional y puede especificarnull
si no desea adjuntar archivos al formulario. - Un parámetro de salida largo que se utiliza para almacenar el recuento de páginas.
- Un parámetro de salida de cadena que se utiliza para almacenar el valor de configuración regional.
- A
FormsResult
parámetro de salida que se utiliza para almacenar el formulario del PDF interactivo.
El
renderPDFForm2
El método devuelve un valorFormsResult
que contiene el formulario PDF interactivo. - A
-
Realizar una acción con el flujo de datos del formulario
- Crear un
BLOB
que contiene datos de formulario al obtener el valor del objetoFormsResult
del objetooutputContent
field. - Crear un
System.IO.FileStream
invocando su constructor. Pase un valor de cadena que represente la ubicación del archivo del documento interactivo del PDF y el modo en que se abrirá el archivo. - Cree una matriz de bytes que almacene el contenido del
BLOB
objeto recuperado delFormsResult
objeto. Rellene la matriz de bytes obteniendo el valor deBLOB
del objetoMTOM
miembro de datos. - Crear un
System.IO.BinaryWriter
invocando su constructor y pasando el objetoSystem.IO.FileStream
objeto. - Escriba el contenido de la matriz de bytes en un archivo PDF invocando el método
System.IO.BinaryWriter
del objetoWrite
y pasando la matriz de bytes.
- Crear un
Consulte también
Invocar AEM Forms mediante MTOM