Resumo das etapas

Para renderizar um formulário por valor, execute as seguintes etapas:

  1. Inclua arquivos de projeto.
  2. Crie um objeto da API do cliente do Forms.
  3. Consulte o design de formulário.
  4. Renderizar um formulário por valor.
  5. Grave o fluxo de dados do formulário no navegador da Web cliente.

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 um objeto de API do cliente do Forms

Antes de poder importar dados de forma programática para uma API do cliente do PDF, é necessário criar um cliente do serviço de Integração de dados. Ao criar um cliente de serviço, você define as configurações de conexão necessárias para chamar um serviço.

Referência ao design de formulário

Ao renderizar um formulário por valor, é necessário criar um com.adobe.idp.Document objeto que contém o design de formulário a ser renderizado. Você pode fazer referência a um arquivo XDP existente ou pode criar dinamicamente um design de formulário em tempo de execução e preencher um com.adobe.idp.Document com esses dados.

OBSERVAÇÃO
Esta seção e o início rápido correspondente fazem referência a um arquivo XDP existente.

Renderizar um formulário por valor

Para renderizar um formulário por valor, passe um com.adobe.idp.Document instância que contém o design de formulário para o método de renderização inDataDoc (pode ser qualquer um dos FormsServiceClient métodos de renderização do objeto, como renderPDFForm, (Deprecated) renderHTMLForme assim por diante). Normalmente, esse valor de parâmetro é reservado para dados unidos ao formulário. Da mesma forma, passe um valor de string vazia para a variável formQuery parâmetro. Normalmente, esse parâmetro requer um valor de string que especifica o nome do design de formulário.

OBSERVAÇÃO
Para exibir dados no formulário, os dados devem ser especificados na variável xfa:datasets elemento. Para obter informações sobre a arquitetura XFA, acesse https://www.pdfa.org/norm-refs/XFA-3_3.pdf.

Gravar o fluxo de dados do formulário no navegador da Web cliente

Quando o serviço Forms renderiza um formulário por valor, ele retorna um fluxo de dados de formulário que deve ser gravado no navegador da Web cliente. Quando gravado no navegador da Web do cliente, o formulário fica visível para o usuário.

Consulte também

Renderizar um formulário por valor usando a API Java

Renderizar um formulário por valor usando a API do serviço da Web

Inclusão de arquivos da biblioteca Java do AEM Forms

Configuração das propriedades de conexão

Início rápido da API do Forms Service

Enviar documentos para o serviço do Forms

Criação de aplicativos Web que renderizam o Forms

Renderizar um formulário por valor usando a API Java

Renderize um formulário por valor usando a API do Forms (Java):

  1. Incluir arquivos de projeto

    Inclua arquivos JAR do cliente, como adobe-forms-client.jar, no caminho de classe do seu projeto Java.

  2. Criar um objeto de API do cliente do Forms

    • Crie um ServiceClientFactory objeto que contém propriedades de conexão.
    • Crie um FormsServiceClient usando seu construtor e passando o ServiceClientFactory objeto.
  3. Referência ao design de formulário

    • Crie um java.io.FileInputStream objeto que representa o design de formulário a ser renderizado usando seu construtor e passando um valor de string que especifica o local do arquivo XDP.
    • Crie um com.adobe.idp.Document usando seu construtor e passando o java.io.FileInputStream objeto.
  4. Renderizar um formulário por valor

    Chame o FormsServiceClient do objeto renderPDFForm e transmita os seguintes valores:

    • Um valor de string vazio. (Normalmente, esse parâmetro requer um valor de string que especifica o nome do design de formulário.)
    • A com.adobe.idp.Document objeto que contém o design de formulário. Normalmente, esse valor de parâmetro é reservado para dados que são unidos ao formulário.
    • A PDFFormRenderSpec objeto que armazena opções de tempo de execução. Este é um parâmetro opcional e você pode especificar null se você não quiser especificar opções de tempo de execução.
    • A URLSpec objeto que contém valores de URI exigidos pelo serviço Forms.
    • A java.util.HashMap que armazena anexos de arquivo. Este é um parâmetro opcional e você pode especificar null se não quiser anexar arquivos ao formulário.

    O renderPDFForm método retorna um FormsResult objeto que contém um fluxo de dados de formulário que pode ser gravado no navegador da Web do cliente.

  5. Gravar o fluxo de dados do formulário no navegador da Web cliente

    • Crie um com.adobe.idp.Document chamando o FormsResult objeto "s getOutputContent método .
    • Obtenha o tipo de conteúdo da variável com.adobe.idp.Document ao invocar seu getContentType método .
    • Defina as javax.servlet.http.HttpServletResponse tipo de conteúdo do objeto, chamando seu setContentType e a transmissão do tipo de conteúdo do com.adobe.idp.Document objeto.
    • Crie um javax.servlet.ServletOutputStream objeto usado para gravar o fluxo de dados do formulário no navegador da Web cliente, chamando o javax.servlet.http.HttpServletResponse do objeto getOutputStream método .
    • Crie um java.io.InputStream chamando o com.adobe.idp.Document do objeto getInputStream método .
    • Crie uma matriz de bytes e aloque o tamanho da variável InputStream objeto. Chame o InputStream do objeto available para obter o tamanho da variável InputStream objeto.
    • Preencha a matriz de bytes com o fluxo de dados do formulário chamando a variável InputStream do objeto reade transmitindo a matriz de bytes como um argumento.
    • Chame o javax.servlet.ServletOutputStream do objeto write para enviar o fluxo de dados do formulário para o navegador da Web cliente. Transmita a matriz de bytes para a write método .

Renderizar um formulário por valor usando a API do serviço da Web

Renderize um formulário por valor usando a API do Forms (serviço da Web):

  1. Incluir arquivos de projeto

    • Crie classes proxy Java que consomem o WSDL do serviço Forms.
    • Inclua as classes proxy Java no caminho da classe.
  2. Criar um objeto de API do cliente do Forms

    Crie um FormsService e definir valores de autenticação.

  3. Referência ao design de formulário

    • Crie um java.io.FileInputStream usando seu construtor. Passe um valor de string que especifica o local do arquivo XDP.
    • Crie um BLOB usando seu construtor. O BLOB é usado para armazenar um documento PDF criptografado com uma senha.
    • Crie uma matriz de bytes que armazene o conteúdo da variável java.io.FileInputStream objeto. Você pode determinar o tamanho da matriz de bytes obtendo a variável java.io.FileInputStream tamanho do objeto usando sua available método .
    • Preencha a matriz de bytes com dados de fluxo chamando a variável java.io.FileInputStream do objeto read e transmitindo a matriz de bytes.
    • Preencha o BLOB ao invocar seu setBinaryData e transmitindo a matriz de bytes.
  4. Renderizar um formulário por valor

    Chame o FormsService do objeto renderPDFForm e transmita os seguintes valores:

    • Um valor de string vazio. (Normalmente, esse parâmetro requer um valor de string que especifica o nome do design de formulário.)
    • A BLOB objeto que contém o design de formulário. Normalmente, esse valor de parâmetro é reservado para dados que são unidos ao formulário.
    • A PDFFormRenderSpec objeto que armazena opções de tempo de execução. Este é um parâmetro opcional e você pode especificar null se você não quiser especificar opções de tempo de execução.
    • A URLSpec objeto que contém valores de URI exigidos pelo serviço Forms.
    • A java.util.HashMap que armazena anexos de arquivo. Este é um parâmetro opcional e você pode especificar null se não quiser anexar arquivos ao formulário.
    • Um vazio com.adobe.idp.services.holders.BLOBHolder objeto preenchido pelo método . Isso é usado para armazenar o formulário PDF renderizado.
    • Um vazio javax.xml.rpc.holders.LongHolder objeto preenchido pelo método . (Esse argumento armazena o número de páginas no formulário.)
    • Um vazio javax.xml.rpc.holders.StringHolder objeto preenchido pelo método . (Esse argumento armazena o valor da localidade.)
    • Um vazio com.adobe.idp.services.holders.FormsResultHolder que conterá os resultados desta operação.

    O renderPDFForm O método preenche a variável com.adobe.idp.services.holders.FormsResultHolder objeto que é passado como o último valor do argumento com um fluxo de dados de formulário que deve ser gravado no navegador da Web do cliente.

  5. Gravar o fluxo de dados do formulário no navegador da Web cliente

    • Crie um FormResult obtendo o valor da variável com.adobe.idp.services.holders.FormsResultHolder do objeto value membro de dados.
    • Crie um BLOB objeto que contém dados de formulário chamando o FormsResult do objeto getOutputContent método .
    • Obtenha o tipo de conteúdo da variável BLOB ao invocar seu getContentType método .
    • Defina as javax.servlet.http.HttpServletResponse tipo de conteúdo do objeto, chamando seu setContentType e a transmissão do tipo de conteúdo do BLOB objeto.
    • Crie um javax.servlet.ServletOutputStream objeto usado para gravar o fluxo de dados do formulário no navegador da Web cliente, chamando o javax.servlet.http.HttpServletResponse do objeto getOutputStream método .
    • Crie uma matriz de bytes e preencha-a chamando a variável BLOB do objeto getBinaryData método . Essa tarefa atribui o conteúdo da FormsResult para a matriz de bytes.
    • Chame o javax.servlet.http.HttpServletResponse do objeto write para enviar o fluxo de dados do formulário para o navegador da Web cliente. Transmita a matriz de bytes para a write método .