Ao renderizar um formulário, é possível definir opções de tempo de execução que otimizem o desempenho do serviço Forms. Outra tarefa que você pode executar para melhorar o desempenho do serviço Forms é armazenar arquivos XDP no repositório. No entanto, esta seção não descreve como executar essa tarefa. (Consulte Invocar um serviço usando uma biblioteca de cliente Java.)
Para obter mais informações sobre o serviço Forms, consulte Referência de serviços para AEM Forms.
Para otimizar o desempenho do serviço Forms ao renderizar um formulário, execute as seguintes tarefas:
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 Forms Client
Antes de executar programaticamente uma operação de API do cliente de serviço da Forms, você deve criar um cliente de serviço da Forms. Se você estiver usando a API Java, crie um objeto FormsServiceClient
. Se você estiver usando a API de serviço da Web da Forms, crie um objeto FormsService
.
Definir opções de tempo de execução de desempenho
Você pode definir as seguintes opções de tempo de execução de desempenho para melhorar o desempenho do serviço Forms:
true
, o que resultará na renderização de formulários sem informações de estado. As informações de estado são necessárias se você deseja renderizar um formulário interativo para um usuário final que digita as informações no formulário e envia o formulário de volta ao serviço da Forms. Em seguida, o serviço Forms realiza uma operação de cálculo e renderiza o formulário de volta ao usuário com os resultados exibidos no formulário. Se um formulário sem informações de estado for enviado de volta ao serviço Forms, somente os dados XML estarão disponíveis e os cálculos do lado do servidor não serão executados.Renderizar o formulário
Para renderizar o formulário após definir as opções de desempenho, use a mesma lógica de aplicativo que renderizar um formulário sem opções de desempenho.
Gravar o fluxo de dados do formulário no navegador da Web do cliente
Depois que o serviço Forms renderiza um formulário, ele retorna um fluxo de dados do formulário que você deve gravar no navegador da Web do cliente. Quando gravado no navegador da Web do cliente, o formulário fica visível para o usuário.
Consulte também:
Incluindo arquivos da biblioteca Java AEM Forms
Configuração das propriedades de conexão
Start rápidos da API de serviço da Forms
Renderização de PDF forms interativos
Criação de Aplicações web que renderizam o Forms
Renderize um formulário com desempenho otimizado usando a API do Forms (Java):
Incluir arquivos de projeto
Inclua arquivos JAR do cliente, como adobe-forms-client.jar, no caminho de classe do seu projeto Java.
Criar um objeto de API do Forms Client
ServiceClientFactory
que contenha propriedades de conexão.FormsServiceClient
usando seu construtor e transmitindo o objeto ServiceClientFactory
.Definir opções de tempo de execução de desempenho
PDFFormRenderSpec
usando seu construtor.PDFFormRenderSpec
do objeto setCacheEnabled
e transmitindo true
.PDFFormRenderSpec
do objeto setLinearizedPDF
e transmitindo true.
Renderizar o formulário
Chame o método FormsServiceClient
do objeto renderPDFForm
e passe os seguintes valores:
com.adobe.idp.Document
que contém dados a serem unidos ao formulário. Se você não quiser unir dados, passe um objeto com.adobe.idp.Document
vazio.PDFFormRenderSpec
que armazena opções de tempo de execução para melhorar o desempenho.URLSpec
que contém valores de URI exigidos pelo serviço Forms.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 método renderPDFForm
retorna um objeto FormsResult
que contém um fluxo de dados de formulário que deve ser gravado no navegador da Web do cliente.
Gravar o fluxo de dados do formulário no navegador da Web do cliente
javax.servlet.ServletOutputStream
usado para enviar um fluxo de dados de formulário para o navegador da Web do cliente.com.adobe.idp.Document
chamando o método FormsResult
object 's getOutputContent
.java.io.InputStream
invocando o método com.adobe.idp.Document
do objeto getInputStream
.InputStream
do objeto read
e transmitindo a matriz de bytes como um argumento.javax.servlet.ServletOutputStream
do objeto write
para enviar o fluxo de dados do formulário para o navegador da Web do cliente. Passe a matriz de bytes para o método write
.Consulte também:
Start rápido (modo SOAP): Otimização do desempenho usando a API Java
Incluindo arquivos da biblioteca Java AEM Forms
Configuração das propriedades de conexão
Renderize um formulário com desempenho otimizado usando a Forms API (serviço da Web):
Incluir arquivos de projeto
Criar um objeto de API do Forms Client
Crie um objeto FormsService
e defina os valores de autenticação.
Definir opções de tempo de execução de desempenho
PDFFormRenderSpec
usando seu construtor.PDFFormRenderSpec
do objeto setCacheEnabled
e transmitindo true.PDFFormRenderSpec
do objeto setStandAlone
e transmitindo true.PDFFormRenderSpec
do objeto setLinearizedPDF
e transmitindo true.Renderizar o formulário
Chame o método FormsService
do objeto renderPDFForm
e passe os seguintes valores:
BLOB
que contém dados a serem unidos ao formulário. Se você não quiser unir dados, passe null
.PDFFormRenderSpecc
que armazena opções de tempo de execução.URLSpec
que contém valores de URI exigidos pelo serviço Forms.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.com.adobe.idp.services.holders.BLOBHolder
que é preenchido pelo método. Isso é usado para armazenar o formulário PDF renderizado.javax.xml.rpc.holders.LongHolder
que é preenchido pelo método. (Esse argumento armazenará o número de páginas no formulário).javax.xml.rpc.holders.StringHolder
que é preenchido pelo método. (Esse argumento armazenará o valor da localidade).com.adobe.idp.services.holders.FormsResultHolder
que conterá os resultados desta operação.O método renderPDFForm
preenche o objeto com.adobe.idp.services.holders.FormsResultHolder
transmitido como o último valor do argumento com um fluxo de dados de formulário que deve ser gravado no navegador da Web do cliente.
Gravar o fluxo de dados do formulário no navegador da Web do cliente
FormResult
obtendo o valor do membro de dados com.adobe.idp.services.holders.FormsResultHolder
do objeto value
.javax.servlet.ServletOutputStream
usado para enviar um fluxo de dados de formulário para o navegador da Web do cliente.BLOB
que contenha dados de formulário chamando o método FormsResult
do objeto getOutputContent
.BLOB
do objeto getBinaryData
. Essa tarefa atribui o conteúdo do objeto FormsResult
à matriz de bytes.javax.servlet.http.HttpServletResponse
do objeto write
para enviar o fluxo de dados do formulário para o navegador da Web do cliente. Passe a matriz de bytes para o método write
.Consulte também:
Invocar o AEM Forms usando a codificação Base64