Passar documentos para o serviço da Forms passing-documents-to-the-formsservice
Exemplos e exemplos neste documento são somente para AEM Forms no ambiente JEE.
O serviço AEM Forms renderiza PDF forms interativos em dispositivos clientes, geralmente navegadores da Web, para coletar informações dos usuários. Um formulário PDF interativo é baseado em um design de formulário que normalmente é salvo como um arquivo XDP e criado no Designer. A partir do AEM Forms, você pode passar um objeto com.adobe.idp.Document que contenha o design do formulário para o serviço do Forms. O serviço Forms renderiza o design do formulário no objeto com.adobe.idp.Document.
Uma vantagem de passar um objeto com.adobe.idp.Document para o serviço Forms é que outras operações de serviço retornam uma instância com.adobe.idp.Document. Ou seja, você pode obter uma instância com.adobe.idp.Document de outra operação de serviço e renderizá-la. Por exemplo, digamos que um arquivo XDP esteja armazenado em um nó do Content Services (obsoleto) chamado /Company Home/Form Designs, como mostrado na ilustração a seguir.
Você pode recuperar programaticamente Loan.xdp do Content Services (desaprovado) (desaprovado) e passar o arquivo XDP para o serviço Forms em um objeto com.adobe.idp.Document.
Resumo das etapas summary-of-steps
Para passar um documento obtido do Content Services (obsoleto) (obsoleto) para o serviço Forms, execute as seguintes tarefas:
- Incluir arquivos de projeto.
- Crie um Forms e um objeto de API do cliente de gerenciamento de documentos.
- Recuperar o design do formulário do Content Services (desaprovado).
- Renderize o formulário PDF interativo.
- Execute uma ação com o fluxo de dados de formulário.
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, inclua os arquivos proxy.
Criar um Forms e um objeto de API do Cliente 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. Além disso, como esse fluxo de trabalho recupera um arquivo XDP do Content Services (obsoleto), crie um objeto de API do Document Management.
Recuperar o design do formulário do Content Services (desaprovado)
Recupere o arquivo XDP do Content Services (obsoleto) usando o Java ou a API do serviço da Web. O arquivo XDP é retornado em uma instância com.adobe.idp.Document (ou uma instância BLOB se você estiver usando serviços da Web). Em seguida, você pode passar a instância com.adobe.idp.Document para o serviço Forms.
Renderizar um formulário de PDF interativo
Para renderizar um formulário interativo, passe a instância com.adobe.idp.Document que foi retornada do Content Services (desaprovado) para o serviço Forms.
com.adobe.idp.Document que contenha o design do formulário para o serviço Forms. Dois novos métodos chamados renderPDFForm2 e renderHTMLForm2 aceitam um objeto com.adobe.idp.Document que contém um design de formulário.Executar uma ação com o fluxo de dados de formulário
Dependendo do tipo de aplicativo cliente, você pode gravar o formulário em um navegador da Web cliente ou salvá-lo como um arquivo PDF. Um aplicativo baseado na Web normalmente grava o formulário em um navegador da Web. No entanto, um aplicativo de desktop normalmente salva o formulário como um arquivo PDF.
Consulte também
Inclusão de arquivos da biblioteca Java do AEM Forms
Enviar documentos para o serviço Forms usando a API Java pass-documents-to-the-forms-service-using-the-java-api
Envie um documento obtido do Content Services (desaprovado) usando o serviço do Forms e a API do Content Services (desaprovado) (Java):
-
Incluir arquivos de projeto
Inclua arquivos JAR do cliente, como adobe-forms-client.jar e adobe-contentservices-client.jar, no caminho de classe do projeto Java.
-
Criar um Forms e um objeto de API do cliente de gerenciamento de documentos
- Crie um objeto
ServiceClientFactoryque contenha propriedades de conexão. (Consulte Definindo propriedades de conexão.) - Crie um objeto
FormsServiceClientusando seu construtor e transmitindo o objetoServiceClientFactory. - Crie um objeto
DocumentManagementServiceClientImplusando seu construtor e transmitindo o objetoServiceClientFactory.
- Crie um objeto
-
Recuperar o design do formulário do Content Services (desaprovado)
Chame o método
retrieveContentdo objetoDocumentManagementServiceClientImple passe 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 que especifica o caminho totalmente qualificado do conteúdo a ser recuperado (por exemplo,
/Company Home/Form Designs/Loan.xdp). Esse valor é um parâmetro obrigatório. - Um valor de string que especifica a versão. Esse valor é um parâmetro opcional e você pode passar uma string vazia. Nessa situação, a versão mais recente é recuperada.
O método
retrieveContentretorna um objetoCRCResultque contém o arquivo XDP. Obtenha uma instânciacom.adobe.idp.Documentinvocando o métodogetDocumentdo objetoCRCResult. - Um valor de string que especifica o armazenamento em que o conteúdo é adicionado. O armazenamento padrão é
-
Renderizar um formulário PDF interativo
Chame o método
renderPDFForm2do objetoFormsServiceCliente passe os seguintes valores:- Um objeto
com.adobe.idp.Documentque contém o design de formulário recuperado do Content Services (desaprovado). - Um objeto
com.adobe.idp.Documentque contém dados para mesclar com o formulário. Se não quiser mesclar dados, passe um objetocom.adobe.idp.Documentvazio. - Um objeto
PDFFormRenderSpecque armazena opções de tempo de execução. Este valor é um parâmetro opcional, e você pode especificarnullse não quiser especificar opções de tempo de execução. - Um objeto
URLSpecque contém valores de URI. Este valor é um parâmetro opcional, e você pode especificarnull. - Um objeto
java.util.HashMapque armazena anexos de arquivo. Este valor é um parâmetro opcional, e você pode especificarnullse não quiser anexar arquivos ao formulário.
O método
renderPDFFormretorna um objetoFormsResultque contém um fluxo de dados de formulário que deve ser gravado no navegador Web cliente. - Um objeto
-
Executar uma ação com o fluxo de dados de formulário
- Crie um objeto
com.adobe.idp.Documentinvocando o métodogetOutputContentdo objetoFormsResult. - Obtenha o tipo de conteúdo do objeto
com.adobe.idp.Documentinvocando seu métodogetContentType. - Defina o tipo de conteúdo do objeto
javax.servlet.http.HttpServletResponseinvocando seu métodosetContentTypee transmitindo o tipo de conteúdo do objetocom.adobe.idp.Document. - Crie um objeto
javax.servlet.ServletOutputStreamusado para gravar o fluxo de dados de formulário no navegador da Web cliente, chamando o métodogetOutputStreamdo objetojavax.servlet.http.HttpServletResponse. - Crie um objeto
java.io.InputStreaminvocando o métodogetInputStreamdo objetocom.adobe.idp.Document. - Crie uma matriz de bytes e preencha-a com o fluxo de dados de formulário, chamando o método
readdo objetoInputStream. Transmita a matriz de bytes como argumento. - Invoque o método
writedo objetojavax.servlet.ServletOutputStreampara enviar o fluxo de dados de formulário para o navegador da Web cliente. Passar a matriz de bytes para o métodowrite.
- Crie um objeto
Consulte também
Início rápido (modo SOAP): Passar documentos para o Forms Service usando a API Java
Enviar documentos para o serviço Forms usando a API do serviço Web pass-documents-to-the-forms-service-using-the-web-service-api
Envie um documento obtido do Content Services (desaprovado) usando o serviço do Forms e a API (serviço da Web) do Content Services (desaprovado):
-
Incluir arquivos de projeto
Crie um projeto Microsoft .NET que use MTOM. Como este aplicativo cliente invoca dois serviços AEM Forms, crie duas referências de serviço. Use a seguinte definição WSDL para a referência de serviço associada ao serviço Forms:
http://localhost:8080/soap/services/FormsService?WSDL&lc_version=9.0.1.Use a seguinte definição WSDL para a referência de serviço associada ao serviço de Gerenciamento de Documentos:
http://localhost:8080/soap/services/DocumentManagementService?WSDL&lc_version=9.0.1.Como o tipo de dados
BLOBé comum a ambas as referências de serviço, qualifique totalmente o tipo de dadosBLOBao usá-lo. No início rápido do serviço Web correspondente, todas asBLOBinstâncias são totalmente qualificadas.note note NOTE Substitua localhostpelo endereço IP do servidor que hospeda o AEM Forms. -
Criar um Forms e um objeto de API do cliente de gerenciamento de documentos
-
Crie um objeto
FormsServiceClientusando seu construtor padrão. -
Crie um objeto
FormsServiceClient.Endpoint.Addressusando o construtorSystem.ServiceModel.EndpointAddress. Transmita um valor de string que especifique o WSDL para o serviço AEM Forms (por exemplo,http://localhost:8080/soap/services/FormsService?WSDL). Você não precisa usar o atributolc_version. Esse atributo é usado quando você cria uma referência de serviço.) -
Crie um objeto
System.ServiceModel.BasicHttpBindingobtendo o valor do campoFormsServiceClient.Endpoint.Binding. Converter o valor de retorno emBasicHttpBinding. -
Defina o campo
MessageEncodingdo objetoSystem.ServiceModel.BasicHttpBindingcomoWSMessageEncoding.Mtom. Esse valor garante que a MTOM seja usada. -
Ative a autenticação HTTP básica executando as seguintes tarefas:
- Atribua o nome de usuário dos formulários AEM ao campo
FormsServiceClient.ClientCredentials.UserName.UserName. - Atribua o valor de senha correspondente ao campo
FormsServiceClient.ClientCredentials.UserName.Password. - Atribua o valor constante
HttpClientCredentialType.Basicao campoBasicHttpBindingSecurity.Transport.ClientCredentialType.
- Atribua o nome de usuário dos formulários AEM ao campo
-
Atribua o valor constante
BasicHttpSecurityMode.TransportCredentialOnlyao campoBasicHttpBindingSecurity.Security.Mode.
note note NOTE Repita essas etapas para o cliente de serviço DocumentManagementServiceClient. -
-
Recuperar o design do formulário do Content Services (desaprovado)
Recupere o conteúdo chamando o método
retrieveContentdo objetoDocumentManagementServiceCliente transmitindo 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 que especifica o caminho totalmente qualificado do conteúdo a ser recuperado (por exemplo,
/Company Home/Form Designs/Loan.xdp). Esse valor é um parâmetro obrigatório. - Um valor de string que especifica a versão. Esse valor é um parâmetro opcional e você pode passar uma string vazia. Nessa situação, a versão mais recente é recuperada.
- Um parâmetro de saída da string que armazena o valor do link de pesquisa.
- Um parâmetro de saída
BLOBque armazena o conteúdo. Você pode usar esse parâmetro de saída para recuperar o conteúdo. - Um parâmetro de saída
ServiceReference1.MyMapOf_xsd_string_To_xsd_anyTypeque armazena atributos de conteúdo. - Um parâmetro de saída
CRCResult. Em vez de usar esse objeto, você pode usar o parâmetro de saídaBLOBpara obter o conteúdo.
- Um valor de string que especifica o armazenamento em que o conteúdo é adicionado. O armazenamento padrão é
-
Renderizar um formulário PDF interativo
Chame o método
renderPDFForm2do objetoFormsServiceCliente passe os seguintes valores:- Um objeto
BLOBque contém o design de formulário recuperado do Content Services (desaprovado). - Um objeto
BLOBque contém dados para mesclar com o formulário. Se não quiser mesclar dados, passe um objetoBLOBvazio. - Um objeto
PDFFormRenderSpecque armazena opções de tempo de execução. Este valor é um parâmetro opcional, e você pode especificarnullse não quiser especificar opções de tempo de execução. - Um objeto
URLSpecque contém valores de URI. Este valor é um parâmetro opcional, e você pode especificarnull. - Um objeto
Mapque armazena anexos de arquivo. Este valor é um parâmetro opcional, e você pode especificarnullse não quiser anexar arquivos ao formulário. - Um parâmetro de saída longo que é usado para armazenar a contagem de páginas.
- Um parâmetro de saída da string que é usado para armazenar o valor do local.
- Um parâmetro de saída
FormsResultque é usado para armazenar o formulário de PDF interativo.
O método
renderPDFForm2retorna um objetoFormsResultque contém o formulário PDF interativo. - Um objeto
-
Executar uma ação com o fluxo de dados de formulário
- Crie um objeto
BLOBque contenha dados de formulário obtendo o valor do campooutputContentdo objetoFormsResult. - Crie um objeto
System.IO.FileStreaminvocando seu construtor. Transmita um valor de string que represente o local do arquivo do documento PDF interativo e o modo no qual o arquivo será aberto. - Crie uma matriz de bytes que armazene o conteúdo do objeto
BLOBrecuperado do objetoFormsResult. Popular a matriz de bytes obtendo o valor do membro de dadosMTOMdo objetoBLOB. - Crie um objeto
System.IO.BinaryWriterinvocando seu construtor e transmitindo o objetoSystem.IO.FileStream. - Grave o conteúdo da matriz de bytes em um arquivo PDF, chamando o método
Writedo objetoSystem.IO.BinaryWritere transmitindo a matriz de bytes.
- Crie um objeto
Consulte também
Chamar o AEM Forms usando MTOM