Criação de documentos PDF com dados XML enviados creating-pdf-documents-with-submittedxml-data
Criação de documentos PDF com dados XML enviados creating-pdf-documents-with-submitted-xml-data
Aplicativos baseados na Web que permitem que os usuários preencham formulários interativos exigem que os dados sejam enviados de volta para o servidor. Com o serviço Forms, é possível recuperar os dados de formulário inseridos pelo usuário em um formulário interativo. Em seguida, é possível passar os dados do formulário para outra operação de serviço do AEM Forms e criar um documento do PDF usando os dados.
Considere o seguinte fluxo de trabalho que envolve três serviços da AEM Forms:
- Um usuário envia dados XML para o serviço Forms a partir de um aplicativo baseado na Web.
- O serviço Forms é usado para processar o formulário enviado e extrair campos do formulário. Os dados do formulário podem ser processados. Por exemplo, os dados podem ser enviados para um banco de dados corporativo.
- Os dados do formulário são enviados ao serviço de saída para criar um documento PDF não interativo.
- O documento do PDF não interativo é armazenado nos Serviços de conteúdo (obsoleto).
O diagrama a seguir fornece uma representação visual desse workflow.
Depois que o usuário envia o formulário do navegador da Web cliente, o documento do PDF não interativo é armazenado no Content Services (obsoleto). A ilustração a seguir mostra um documento PDF armazenado nos Serviços de conteúdo (obsoleto).
Resumo das etapas summary-of-steps
Para criar um documento PDF não interativo com dados XML enviados e armazenar no documento PDF no Content Services (obsoleto), execute as seguintes tarefas:
- Inclua arquivos de projeto.
- Criar objetos Forms, Output e Document Management.
- Recupere dados do formulário usando o serviço Forms.
- Crie um documento PDF não interativo usando o serviço de Saída.
- Armazene o formulário PDF no Content Services (obsoleto) usando o serviço Document Management.
Incluir arquivos de projeto
Inclua os arquivos necessários no projeto de desenvolvimento. Se você estiver criando um aplicativo cliente usando Java, inclua os arquivos JAR necessários. Se você estiver usando serviços da Web, certifique-se de incluir os arquivos proxy.
Criar objetos Forms, Output e Gerenciamento de documentos
Antes de executar programaticamente uma operação de API de serviço do Forms, crie um objeto de API do cliente Forms. Da mesma forma, como esse workflow chama os serviços de Saída e Gerenciamento de Documentos, crie um objeto de API do Cliente de Saída e um objeto de API do Cliente de Gerenciamento de Documentos.
Recuperar dados do formulário usando o serviço Forms
Recupere dados do formulário que foram enviados ao serviço da Forms. Você pode processar dados enviados para atender às suas necessidades de negócios. Por exemplo, você pode armazenar dados de formulário em um banco de dados corporativo. No entanto, para criar um documento PDF não interativo, os dados do formulário são passados para o serviço Saída.
Crie um documento PDF não interativo usando o serviço de Saída.
Use o Serviço de saída para criar um documento PDF não interativo baseado em um design de formulário e dados de formulário XML. No workflow, os dados do formulário são recuperados do serviço Forms .
Armazene o formulário PDF no Content Services (obsoleto) usando o serviço de Gerenciamento de documentos
Use a API do serviço de Gerenciamento de documentos para armazenar um documento do PDF no Content Services (obsoleto).
Consulte também
Inclusão de arquivos da biblioteca Java do AEM Forms
Criar um documento do PDF com dados XML enviados usando a API do Java create-a-pdf-document-with-submitted-xml-data-using-the-java-api
Crie um documento do PDF com dados XML enviados usando a Forms, Output e Document Management API (Java):
-
Incluir arquivos de projeto
Inclua arquivos JAR do cliente, como adobe-forms-client.jar, adobe-output-client.jar e adobe-contentservices-client.jar no caminho de classe do seu projeto Java.
-
Criar objetos Forms, Output e Gerenciamento de documentos
- Crie um
ServiceClientFactoryobjeto que contém propriedades de conexão. - Crie um
FormsServiceClientusando seu construtor e passando oServiceClientFactoryobjeto. - Crie um
OutputClientusando seu construtor e passando oServiceClientFactoryobjeto. - Crie um
DocumentManagementServiceClientImplusando seu construtor e passando oServiceClientFactoryobjeto.
- Crie um
-
Recuperar dados do formulário usando o serviço Forms
-
Chame o
FormsServiceClientdo objetoprocessFormSubmissione transmita os seguintes valores:- O
com.adobe.idp.Documentobjeto que contém os dados do formulário. - Um valor de string que especifica variáveis de ambiente, incluindo todos os cabeçalhos HTTP relevantes. Especifique o tipo de conteúdo a ser tratado especificando um ou mais valores para a variável
CONTENT_TYPEvariável de ambiente. Por exemplo, para manipular dados XML, especifique o seguinte valor de string para esse parâmetro:CONTENT_TYPE=text/xml. - Um valor de string que especifica a variável
HTTP_USER_AGENTvalor de cabeçalho, comoMozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322). - A
RenderOptionsSpecobjeto que armazena opções de tempo de execução.
O
processFormSubmissionmétodo retorna umFormsResultobjeto contendo os resultados do envio do formulário. - O
-
Determine se o serviço Forms terminou de processar os dados do formulário chamando a função
FormsResultdo objetogetActionmétodo . Se esse método retornar o valor0, os dados estão prontos para serem processados. -
Recupere os dados do formulário criando uma
com.adobe.idp.Documentchamando oFormsResultdo objetogetOutputContentmétodo . (Esse objeto contém dados de formulário que podem ser enviados para o serviço de saída.) -
Crie um
java.io.InputStreamchamando ojava.io.DataInputStreame transmitindo ocom.adobe.idp.Documentobjeto. -
Crie um
org.w3c.dom.DocumentBuilderFactorychamando o objeto estáticoorg.w3c.dom.DocumentBuilderFactorydo objetonewInstancemétodo . -
Crie um
org.w3c.dom.DocumentBuilderchamando oorg.w3c.dom.DocumentBuilderFactorydo objetonewDocumentBuildermétodo . -
Crie um
org.w3c.dom.Documentchamando oorg.w3c.dom.DocumentBuilderdo objetoparsee a aprovação dojava.io.InputStreamobjeto. -
Recupere o valor de cada nó no documento XML. Uma maneira de realizar essa tarefa é criar um método personalizado que aceite dois parâmetros: o
org.w3c.dom.Documente o nome do nó cujo valor você deseja recuperar. Esse método retorna um valor de string que representa o valor do nó. No exemplo de código que segue esse processo, esse método personalizado é chamado degetNodeText. O corpo desse método é mostrado.
-
-
Crie um documento PDF não interativo usando o serviço de Saída.
Crie um documento do PDF chamando o
OutputClientdo objetogeneratePDFOutpute transmitindo os seguintes valores:- A
TransformationFormatvalor de enum. Para gerar um documento PDF, especifiqueTransformationFormat.PDF. - Um valor de string que especifica o nome do design de formulário. Certifique-se de que o design de formulário seja compatível com os dados de formulário recuperados do serviço Forms.
- Um valor de string que especifica a raiz de conteúdo na qual o design de formulário está localizado.
- A
PDFOutputOptionsSpecobjeto que contém opções de tempo de execução do PDF. - A
RenderOptionsSpecobjeto que contém opções de tempo de execução de renderização. - O
com.adobe.idp.Documentobjeto que contém a fonte de dados XML que contém dados para mesclar com o design de formulário. Certifique-se de que esse objeto foi retornado pela funçãoFormsResultdo objetogetOutputContentmétodo . - O
generatePDFOutputretorna um métodoOutputResultque contém os resultados da operação. - Recupere o documento PDF não interativo chamando o
OutputResultdo objetogetGeneratedDocmétodo . Esse método retorna umcom.adobe.idp.Documentinstância que representa o documento PDF não interativo.
- A
-
Armazene o formulário PDF no Content Services (obsoleto) usando o serviço de Gerenciamento de documentos
Adicione o conteúdo chamando a função
DocumentManagementServiceClientImpldo objetostoreContente transmitindo os seguintes valores:- Um valor de string que especifica o armazenamento onde o conteúdo é adicionado. O armazenamento padrão é
SpacesStore. Esse valor é um parâmetro obrigatório. - Um valor de string que especifica o caminho totalmente qualificado do espaço em que o conteúdo é adicionado (por exemplo,
/Company Home/Test Directory). Esse valor é um parâmetro obrigatório. - O nome do nó que representa o novo conteúdo (por exemplo,
MortgageForm.pdf). Esse valor é um parâmetro obrigatório. - Um valor de string que especifica o tipo de nó. Para adicionar novo conteúdo, como um arquivo PDF, especifique
{https://www.alfresco.org/model/content/1.0}content. Esse valor é um parâmetro obrigatório. - A
com.adobe.idp.Documentque representa o conteúdo. Esse valor é um parâmetro obrigatório. - Um valor de string que especifica o valor de codificação (por exemplo,
UTF-8). Esse valor é um parâmetro obrigatório. - Um
UpdateVersionTypevalor de enumeração que especifica como lidar com informações de versão (por exemplo,UpdateVersionType.INCREMENT_MAJOR_VERSIONpara incrementar a versão do conteúdo. ) Esse valor é um parâmetro obrigatório. - A
java.util.Listque especifica os aspectos relacionados ao conteúdo. Esse valor é um parâmetro opcional e você pode especificarnull. - A
java.util.Mapque armazena atributos de conteúdo.
O
storeContentmétodo retorna umCRCResultque descreve o conteúdo. Uso de umaCRCResult, é possível, por exemplo, obter o valor identificador exclusivo do conteúdo. Para executar essa tarefa, chame oCRCResultdo objetogetNodeUuidmétodo . - Um valor de string que especifica o armazenamento onde o conteúdo é adicionado. O armazenamento padrão é
Consulte também
Inclusão de arquivos da biblioteca Java do AEM Forms
Configuração das propriedades de conexão