Otimizar o desempenho usando a API Java
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 projeto Java.
-
Criar um objeto da API do cliente do Forms
- Crie um objeto
ServiceClientFactory
que contenha propriedades de conexão. - Crie um objeto
FormsServiceClient
usando seu construtor e transmitindo o objetoServiceClientFactory
.
- Crie um objeto
-
Definir opções de tempo de execução de desempenho
- Crie um objeto
PDFFormRenderSpec
usando seu construtor. - Defina a opção de cache de formulários chamando o método
setCacheEnabled
do objetoPDFFormRenderSpec
e transmitindotrue
. - Defina a opção linearizada chamando o método
setLinearizedPDF
do objetoPDFFormRenderSpec
e transmitindotrue.
- Crie um objeto
-
Renderizar o formulário
Chame o método
renderPDFForm
do objetoFormsServiceClient
e passe os seguintes valores:- Um valor de cadeia de caracteres que especifica o nome de design do formulário, incluindo a extensão de nome de arquivo.
- Um objeto
com.adobe.idp.Document
que contém dados para mesclar com o formulário. Se não quiser mesclar dados, passe um objetocom.adobe.idp.Document
vazio. - Um objeto
PDFFormRenderSpec
que armazena opções de tempo de execução para melhorar o desempenho. - Um objeto
URLSpec
que contém valores de URI exigidos pelo serviço Forms. - Um objeto
java.util.HashMap
que armazena anexos de arquivo. Este é um parâmetro opcional e você pode especificarnull
se não quiser anexar arquivos ao formulário.
O método
renderPDFForm
retorna um objetoFormsResult
que contém um fluxo de dados de formulário que deve ser gravado no navegador Web cliente. -
Gravar o fluxo de dados do formulário no navegador Web cliente
- Crie um objeto
javax.servlet.ServletOutputStream
usado para enviar um fluxo de dados de formulário ao navegador da Web cliente. - Crie um objeto
com.adobe.idp.Document
invocando o métodogetOutputContent
do objetoFormsResult
. - Crie um objeto
java.io.InputStream
invocando o métodogetInputStream
do objetocom.adobe.idp.Document
. - Crie uma matriz de bytes e preencha-a com o fluxo de dados de formulário, chamando o método
read
do objetoInputStream
e transmitindo a matriz de bytes como argumento. - Invoque o método
write
do objetojavax.servlet.ServletOutputStream
para 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
Otimizar o desempenho usando a API do serviço Web
Renderize um formulário com desempenho otimizado usando a API do Forms (serviço da Web):
-
Incluir arquivos de projeto
- Crie classes de proxy Java que consomem o serviço WSDL do Forms.
- Inclua as classes de proxy Java no caminho da classe.
-
Criar um objeto da API do cliente do Forms
Crie um objeto
FormsService
e defina valores de autenticação. -
Definir opções de tempo de execução de desempenho
- Crie um objeto
PDFFormRenderSpec
usando seu construtor. - Defina a opção de cache de formulários chamando o método
setCacheEnabled
do objetoPDFFormRenderSpec
e passando true. - Defina a opção autônoma invocando o método
setStandAlone
do objetoPDFFormRenderSpec
e transmitindo true. - Defina a opção linearizada chamando o método
setLinearizedPDF
do objetoPDFFormRenderSpec
e passando true.
- Crie um objeto
-
Renderizar o formulário
Chame o método
renderPDFForm
do objetoFormsService
e passe os seguintes valores:- Um valor de cadeia de caracteres que especifica o nome de design do formulário, incluindo a extensão de nome de arquivo.
- Um objeto
BLOB
que contém dados para mesclar com o formulário. Se não quiser mesclar dados, passenull
. - Um objeto
PDFFormRenderSpecc
que armazena opções de tempo de execução. - Um objeto
URLSpec
que contém valores de URI exigidos pelo serviço Forms. - Um objeto
java.util.HashMap
que armazena anexos de arquivo. Este é um parâmetro opcional e você pode especificarnull
se não quiser anexar arquivos ao formulário. - Um objeto
com.adobe.idp.services.holders.BLOBHolder
vazio preenchido pelo método. Isso é usado para armazenar o formulário de PDF renderizado. - Um objeto
javax.xml.rpc.holders.LongHolder
vazio preenchido pelo método. (Esse argumento armazenará o número de páginas no formulário). - Um objeto
javax.xml.rpc.holders.StringHolder
vazio preenchido pelo método. (Esse argumento armazenará o valor do local). - Um objeto
com.adobe.idp.services.holders.FormsResultHolder
vazio que conterá os resultados desta operação.
O método
renderPDFForm
preenche o objetocom.adobe.idp.services.holders.FormsResultHolder
que é passado como o último valor de argumento com um fluxo de dados de formulário que deve ser gravado no navegador Web cliente. -
Gravar o fluxo de dados do formulário no navegador Web cliente
- Crie um objeto
FormResult
obtendo o valor do membro de dadosvalue
do objetocom.adobe.idp.services.holders.FormsResultHolder
. - Crie um objeto
javax.servlet.ServletOutputStream
usado para enviar um fluxo de dados de formulário ao navegador da Web cliente. - Crie um objeto
BLOB
que contenha dados de formulário invocando o métodogetOutputContent
do objetoFormsResult
. - Crie uma matriz de bytes e preencha-a chamando o método
getBinaryData
do objetoBLOB
. Esta tarefa atribui o conteúdo do objetoFormsResult
à matriz de bytes. - Invoque o método
write
do objetojavax.servlet.http.HttpServletResponse
para 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