Criação de documentos PDF com dados XML enviados creating-pdf-documents-with-submittedxml-data
Exemplos e exemplos neste documento são somente para AEM Forms no ambiente JEE.
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 ao servidor. Usando o serviço Forms, você pode recuperar os dados do 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 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 de um aplicativo baseado na Web.
- O serviço Forms é usado para processar o formulário enviado e extrair campos de formulário. Os dados do formulário podem ser processados. Por exemplo, os dados podem ser submetidos a um banco de dados empresarial.
- Os dados de formulário são enviados para o Serviço de saída para criar um documento PDF não interativo.
- O documento 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 do cliente, o documento PDF não interativo é armazenado nos Serviços de conteúdo (desaprovado). A ilustração a seguir mostra um documento PDF armazenado nos Serviços de conteúdo (desaprovado).
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 (desaprovado), execute as seguintes tarefas:
- Incluir arquivos de projeto.
- Crie objetos do 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 nos Serviços de conteúdo (obsoleto) usando o serviço Gerenciamento de documentos.
Incluir arquivos de projeto
Inclua os arquivos necessários no projeto de desenvolvimento. Se você estiver criando uma aplicação 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 do Forms, de Saída e de Gerenciamento de Documentos
Antes de executar programaticamente uma operação da API de serviço do Forms, crie um objeto da API de cliente do Forms. Da mesma forma, como esse fluxo de trabalho chama os serviços de Gerenciamento de Saída e de Documentos, crie um objeto da API de Cliente de Saída e um objeto da API de Cliente de Gerenciamento de Documentos.
Recuperar dados de formulário usando o serviço Forms
Recupere dados de formulário enviados para o serviço Forms. Você pode processar os dados enviados para atender aos requisitos da sua empresa. Por exemplo, você pode armazenar dados de formulário em um banco de dados empresarial. No entanto, para criar um documento PDF não interativo, os dados de formulário são passados para o serviço de 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 de formulário são recuperados do serviço Forms.
Armazenar o formulário PDF nos Serviços de Conteúdo (obsoleto) usando o serviço Gerenciamento de Documentos
Use a API do serviço de Gerenciamento de documentos para armazenar um documento PDF nos Serviços de conteúdo (desaprovado).
Consulte também
Inclusão de arquivos da biblioteca Java do AEM Forms
Criar um documento PDF com dados XML enviados usando a API Java create-a-pdf-document-with-submitted-xml-data-using-the-java-api
Crie um documento PDF com dados XML enviados usando a API de gerenciamento de documentos (Java), do Forms e de saída:
-
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 projeto Java.
-
Criar objetos do Forms, Output e Document Management
- Crie um objeto
ServiceClientFactory
que contenha propriedades de conexão. - Crie um objeto
FormsServiceClient
usando seu construtor e transmitindo o objetoServiceClientFactory
. - Crie um objeto
OutputClient
usando seu construtor e transmitindo o objetoServiceClientFactory
. - Crie um objeto
DocumentManagementServiceClientImpl
usando seu construtor e transmitindo o objetoServiceClientFactory
.
- Crie um objeto
-
Recuperar dados do formulário usando o serviço Forms
-
Chame o método
processFormSubmission
do objetoFormsServiceClient
e passe os seguintes valores:- O objeto
com.adobe.idp.Document
que contém os dados de 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 manipulado especificando um ou mais valores para a variável de ambiente
CONTENT_TYPE
. Por exemplo, para manipular dados XML, especifique o seguinte valor de cadeia de caracteres para este parâmetro:CONTENT_TYPE=text/xml
. - Um valor de cadeia de caracteres que especifica o valor do cabeçalho
HTTP_USER_AGENT
, comoMozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
. - Um objeto
RenderOptionsSpec
que armazena opções de tempo de execução.
O método
processFormSubmission
retorna um objetoFormsResult
contendo os resultados do envio do formulário. - O objeto
-
Determine se o serviço Forms terminou de processar os dados do formulário invocando o método
getAction
do objetoFormsResult
. Se esse método retornar o valor0
, os dados estarão prontos para serem processados. -
Recupere dados do formulário criando um objeto
com.adobe.idp.Document
invocando o métodogetOutputContent
do objetoFormsResult
. (Este objeto contém dados de formulário que podem ser enviados para o Serviço de saída.) -
Crie um objeto
java.io.InputStream
invocando o construtorjava.io.DataInputStream
e transmitindo o objetocom.adobe.idp.Document
. -
Crie um objeto
org.w3c.dom.DocumentBuilderFactory
chamando o métodonewInstance
estático do objetoorg.w3c.dom.DocumentBuilderFactory
. -
Crie um objeto
org.w3c.dom.DocumentBuilder
invocando o métodonewDocumentBuilder
do objetoorg.w3c.dom.DocumentBuilderFactory
. -
Crie um objeto
org.w3c.dom.Document
invocando o métodoparse
do objetoorg.w3c.dom.DocumentBuilder
e transmitindo o objetojava.io.InputStream
. -
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 objeto
org.w3c.dom.Document
e 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 PDF invocando o método
generatePDFOutput
do objetoOutputClient
e transmitindo os seguintes valores:- Um valor de enumeração
TransformationFormat
. Para gerar um documento PDF, especifiqueTransformationFormat.PDF
. - Um valor de cadeia de caracteres que especifica o nome do design do formulário. Verifique se o design do formulário é compatível com os dados de formulário recuperados do serviço Forms.
- Um valor de cadeia de caracteres que especifica a raiz do conteúdo onde o design do formulário está localizado.
- Um objeto
PDFOutputOptionsSpec
que contém opções de tempo de execução de PDF. - Um objeto
RenderOptionsSpec
que contém opções de tempo de execução de renderização. - O objeto
com.adobe.idp.Document
que contém a fonte de dados XML que contém os dados a serem mesclados com o design do formulário. Verifique se esse objeto foi retornado pelo métodogetOutputContent
do objetoFormsResult
. - O método
generatePDFOutput
retorna um objetoOutputResult
que contém os resultados da operação. - Recupere o documento PDF não interativo invocando o método
getGeneratedDoc
do objetoOutputResult
. Este método retorna uma instânciacom.adobe.idp.Document
que representa o documento PDF não interativo.
- Um valor de enumeração
-
Armazenar o formulário PDF nos Serviços de conteúdo (obsoleto) usando o serviço Gerenciamento de documentos
Adicione o conteúdo chamando o método
storeContent
do objetoDocumentManagementServiceClientImpl
e passando os seguintes valores:- Um valor de string que especifica o armazenamento em que o conteúdo é adicionado. O armazenamento padrão é
SpacesStore
. Esse valor é um parâmetro obrigatório. - Um valor de cadeia de caracteres 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 de PDF, especifique
{https://www.alfresco.org/model/content/1.0}content
. Esse valor é um parâmetro obrigatório. - Um objeto
com.adobe.idp.Document
que representa o conteúdo. Esse valor é um parâmetro obrigatório. - Um valor de cadeia de caracteres que especifica o valor de codificação (por exemplo,
UTF-8
). Esse valor é um parâmetro obrigatório. - Um valor de enumeração
UpdateVersionType
que especifica como lidar com informações de versão (por exemplo,UpdateVersionType.INCREMENT_MAJOR_VERSION
para incrementar a versão do conteúdo. ) Esse valor é um parâmetro obrigatório. - Uma instância
java.util.List
que especifica aspectos relacionados ao conteúdo. Este valor é um parâmetro opcional e você pode especificarnull
. - Um objeto
java.util.Map
que armazena atributos de conteúdo.
O método
storeContent
retorna um objetoCRCResult
que descreve o conteúdo. Usando um objetoCRCResult
, você pode, por exemplo, obter o valor do identificador exclusivo do conteúdo. Para executar esta tarefa, chame o métodogetNodeUuid
do objetoCRCResult
. - Um valor de string que especifica o armazenamento em que o conteúdo é adicionado. O armazenamento padrão é
Consulte também
Inclusão de arquivos da biblioteca Java do AEM Forms
Definindo propriedades de conexão