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
ServiceClientFactoryque contenha propriedades de conexão. - Crie um objeto
FormsServiceClientusando seu construtor e transmitindo o objetoServiceClientFactory. - Crie um objeto
OutputClientusando seu construtor e transmitindo o objetoServiceClientFactory. - Crie um objeto
DocumentManagementServiceClientImplusando seu construtor e transmitindo o objetoServiceClientFactory.
- Crie um objeto
-
Recuperar dados do formulário usando o serviço Forms
-
Chame o método
processFormSubmissiondo objetoFormsServiceCliente passe os seguintes valores:- O objeto
com.adobe.idp.Documentque 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
RenderOptionsSpecque armazena opções de tempo de execução.
O método
processFormSubmissionretorna um objetoFormsResultcontendo 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
getActiondo 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.Documentinvocando o métodogetOutputContentdo 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.InputStreaminvocando o construtorjava.io.DataInputStreame transmitindo o objetocom.adobe.idp.Document. -
Crie um objeto
org.w3c.dom.DocumentBuilderFactorychamando o métodonewInstanceestático do objetoorg.w3c.dom.DocumentBuilderFactory. -
Crie um objeto
org.w3c.dom.DocumentBuilderinvocando o métodonewDocumentBuilderdo objetoorg.w3c.dom.DocumentBuilderFactory. -
Crie um objeto
org.w3c.dom.Documentinvocando o métodoparsedo objetoorg.w3c.dom.DocumentBuildere 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.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 PDF invocando o método
generatePDFOutputdo objetoOutputCliente 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
PDFOutputOptionsSpecque contém opções de tempo de execução de PDF. - Um objeto
RenderOptionsSpecque contém opções de tempo de execução de renderização. - O objeto
com.adobe.idp.Documentque 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étodogetOutputContentdo objetoFormsResult. - O método
generatePDFOutputretorna um objetoOutputResultque contém os resultados da operação. - Recupere o documento PDF não interativo invocando o método
getGeneratedDocdo objetoOutputResult. Este método retorna uma instânciacom.adobe.idp.Documentque 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
storeContentdo objetoDocumentManagementServiceClientImple 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.Documentque 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
UpdateVersionTypeque 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. - Uma instância
java.util.Listque especifica aspectos relacionados ao conteúdo. Este valor é um parâmetro opcional e você pode especificarnull. - Um objeto
java.util.Mapque armazena atributos de conteúdo.
O método
storeContentretorna um objetoCRCResultque 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étodogetNodeUuiddo 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