O pré-preenchimento de formulários exibe dados para os usuários em um formulário renderizado. Por exemplo, suponha que um usuário faça logon em um site com um nome de usuário e senha. Se a autenticação for bem-sucedida, o aplicativo cliente query um banco de dados para obter informações do usuário. Os dados são unidos ao formulário e, em seguida, ele é renderizado ao usuário. Como resultado, o usuário pode visualização dados personalizados dentro do formulário.
O pré-preenchimento de um formulário tem as seguintes vantagens:
As duas fontes de dados XML a seguir podem pré-preencher um formulário:
Um elemento XML deve existir para cada campo de formulário que você deseja pré-preencher. O nome do elemento XML deve corresponder ao nome do campo. Um elemento XML será ignorado se não corresponder a um campo de formulário ou se o nome do elemento XML não corresponder ao nome do campo. Não é necessário corresponder à ordem na qual os elementos XML são exibidos, desde que todos os elementos XML sejam especificados.
Ao pré-preencher um formulário que já contém dados, você deve especificar os dados que já são exibidos na fonte de dados XML. Suponha que um formulário contendo 10 campos tenha dados em quatro campos. Em seguida, suponha que você deseja pré-preencher os seis campos restantes. Nessa situação, você deve especificar 10 elementos XML na fonte de dados XML que é usada para pré-preencher o formulário. Se você especificar apenas seis elementos, os quatro campos originais ficarão vazios.
Por exemplo, é possível pré-preencher um formulário, como o formulário de confirmação de amostra. (Consulte "Formulário de confirmação" em Renderizando PDF forms interativos.)
Para pré-preencher o formulário de confirmação de amostra, é necessário criar uma fonte de dados XML que contenha três elementos XML que correspondam aos três campos no formulário. Este formulário contém os três campos a seguir: FirstName
, LastName
e Amount
. A primeira etapa é criar uma fonte de dados XML que contenha elementos XML correspondentes aos campos localizados no design de formulário. A próxima etapa é atribuir valores de dados aos elementos XML, como mostrado no código XML a seguir.
<Untitled>
<FirstName>Jerry</FirstName>
<LastName>Johnson</LastName>
<Amount>250000</Amount>
</Untitled>
Depois de pré-preencher o formulário de confirmação com essa fonte de dados XML e, em seguida, renderizar o formulário, os valores de dados atribuídos aos elementos XML serão exibidos, conforme mostrado no diagrama a seguir.
O Forms com layouts flutuantes é útil para exibir uma quantidade indeterminada de dados para os usuários. Como o layout do formulário se ajusta automaticamente à quantidade de dados que é unida, não é necessário pré-determinar um layout fixo ou um número de páginas para o formulário, conforme necessário, para um formulário com layout fixo.
Normalmente, um formulário é preenchido com dados obtidos durante o tempo de execução. Como resultado, é possível pré-preencher um formulário criando uma fonte de dados XML na memória e colocando os dados diretamente na fonte de dados XML na memória.
Considere um aplicativo baseado na Web, como uma loja online. Depois que um comprador on-line conclui os itens de compra, todos os itens comprados são colocados em uma fonte de dados XML na memória usada para pré-preencher um formulário. O diagrama a seguir mostra esse processo, que é explicado na tabela a seguir ao diagrama.
A tabela a seguir descreve as etapas neste diagrama.
Etapa |
Descrição |
---|---|
1 |
Um usuário compra itens de uma loja online baseada na Web. |
2 |
Depois que o usuário finaliza a compra de itens e clica no botão Enviar, uma fonte de dados XML na memória é criada. Os itens comprados e as informações do usuário são colocados na fonte de dados XML na memória. |
3 |
A fonte de dados XML é usada para pré-preencher um formulário de pedido de compra (um exemplo desse formulário é mostrado a seguir a esta tabela). |
4 |
O formulário de pedido de compra é renderizado no navegador da Web do cliente. |
O diagrama a seguir mostra um exemplo de formulário de pedido de compra. As informações na tabela podem se ajustar ao número de registros nos dados XML.
Um formulário pode ser pré-preenchido com dados de outras fontes, como um banco de dados corporativo ou aplicativos externos.
O Forms com layouts flutuantes baseia-se em designs de formulário criados no Designer. Um design de formulário especifica um conjunto de regras de layout, apresentação e captura de dados, incluindo o cálculo de valores com base na entrada do usuário. As regras são aplicadas quando os dados são inseridos em um formulário. Os campos adicionados a um formulário são subformulários que estão dentro do design de formulário. Por exemplo, no formulário de pedido de compra mostrado no diagrama anterior, cada linha é um subformulário. Para obter informações sobre como criar um design de formulário que contenha subformulários, consulte Criar um formulário de pedido de compra com layout flutuante.
Uma fonte de dados XML é usada para pré-preencher formulários com layouts fixos e layouts flutuantes. No entanto, a diferença é que uma fonte de dados XML que pré-preenche um formulário com um layout flutuante contém elementos XML repetitivos usados para pré-preencher subformulários repetidos no formulário. Esses elementos XML repetitivos são chamados de subgrupos de dados.
Uma fonte de dados XML usada para pré-preencher o formulário de pedido de compra mostrado no diagrama anterior contém quatro subgrupos de dados repetitivos. Cada subgrupo de dados corresponde a um item comprado. Os itens comprados são um monitor, uma lâmpada de mesa, um telefone e um catálogo de endereços.
A seguinte fonte de dados XML é usada para pré-preencher o formulário de pedido de compra.
<header>
<!-- XML elements used to prepopulate non-repeating fields such as address
<!and city
<txtPONum>8745236985</txtPONum>
<dtmDate>2004-02-08</dtmDate>
<txtOrderedByCompanyName>Any Company Name</txtOrderedByCompanyName>
<txtOrderedByAddress>555, Any Blvd.</txtOrderedByAddress>
<txtOrderedByCity>Any City</txtOrderedByCity>
<txtOrderedByStateProv>ST</txtOrderedByStateProv>
<txtOrderedByZipCode>12345</txtOrderedByZipCode>
<txtOrderedByCountry>Any Country</txtOrderedByCountry>
<txtOrderedByPhone>(123) 456-7890</txtOrderedByPhone>
<txtOrderedByFax>(123) 456-7899</txtOrderedByFax>
<txtOrderedByContactName>Contact Name</txtOrderedByContactName>
<txtDeliverToCompanyName>Any Company Name</txtDeliverToCompanyName>
<txtDeliverToAddress>7895, Any Street</txtDeliverToAddress>
<txtDeliverToCity>Any City</txtDeliverToCity>
<txtDeliverToStateProv>ST</txtDeliverToStateProv>
<txtDeliverToZipCode>12346</txtDeliverToZipCode>
<txtDeliverToCountry>Any Country</txtDeliverToCountry>
<txtDeliverToPhone>(123) 456-7891</txtDeliverToPhone>
<txtDeliverToFax>(123) 456-7899</txtDeliverToFax>
<txtDeliverToContactName>Contact Name</txtDeliverToContactName>
</header>
<detail>
<!-- A data subgroup that contains information about the monitor>
<txtPartNum>00010-100</txtPartNum>
<txtDescription>Monitor</txtDescription>
<numQty>1</numQty>
<numUnitPrice>350.00</numUnitPrice>
</detail>
<detail>
<!-- A data subgroup that contains information about the desk lamp>
<txtPartNum>00010-200</txtPartNum>
<txtDescription>Desk lamps</txtDescription>
<numQty>3</numQty>
<numUnitPrice>55.00</numUnitPrice>
</detail>
<detail>
<!-- A data subgroup that contains information about the Phone>
<txtPartNum>00025-275</txtPartNum>
<txtDescription>Phone</txtDescription>
<numQty>5</numQty>
<numUnitPrice>85.00</numUnitPrice>
</detail>
<detail>
<!-- A data subgroup that contains information about the address book>
<txtPartNum>00300-896</txtPartNum>
<txtDescription>Address book</txtDescription>
<numQty>2</numQty>
<numUnitPrice>15.00</numUnitPrice>
</detail>
Observe que cada subgrupo de dados contém quatro elementos XML que correspondem a essas informações:
O nome do elemento XML pai de um subgrupo de dados deve corresponder ao nome do subformulário localizado no design de formulário. Por exemplo, no diagrama anterior, observe que o nome do elemento XML pai do subgrupo de dados é detail
. Isso corresponde ao nome do subformulário localizado no design de formulário no qual o formulário de pedido de compra se baseia. Se o nome do elemento XML pai do subgrupo de dados e do subformulário não coincidirem, um formulário do lado do servidor não será pré-preenchido.
Cada subgrupo de dados deve conter elementos XML que correspondam aos nomes dos campos no subformulário. O subformulário detail
localizado no design de formulário contém os seguintes campos:
Se você tentar pré-preencher um formulário com uma fonte de dados que contenha elementos XML repetitivos e definir a opção RenderAtClient
como No
, somente o primeiro registro de dados será unido ao formulário. Para garantir que todos os registros de dados sejam mesclados no formulário, defina RenderAtClient
como Yes
. Para obter informações sobre a opção RenderAtClient
, consulte Renderização do Forms no Client.
Para obter mais informações sobre o serviço Forms, consulte Referência de serviços para AEM Forms.
Para pré-preencher um formulário com um layout flutuante, 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.
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 uma fonte de dados XML na memória
Você pode usar as classes org.w3c.dom
para criar uma fonte de dados XML na memória para pré-preencher um formulário com um layout flutuante. É necessário colocar os dados em uma fonte de dados XML que esteja em conformidade com o formulário. Para obter informações sobre a relação entre um formulário com um layout flutuante e a fonte de dados XML, consulte Entendendo subgrupos de dados.
Converter a fonte de dados XML
Uma fonte de dados XML na memória criada usando classes org.w3c.dom
pode ser convertida em um objeto com.adobe.idp.Document
antes de poder ser usada para pré-preencher um formulário. Uma fonte de dados XML na memória pode ser convertida usando classes de transformação Java XML.
Se você estiver usando o WSDL do serviço Forms para pré-preencher um formulário, é necessário converter um objeto org.w3c.dom.Document
em um objeto BLOB
.
Renderizar um formulário pré-preenchido
É possível renderizar um formulário pré-preenchido da mesma forma que outro formulário. A única diferença é que você usa o objeto com.adobe.idp.Document
que contém a fonte de dados XML para pré-preencher o formulá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
Para pré-preencher um formulário com um layout flutuante usando a API do Forms (Java), execute as seguintes etapas:
Incluir arquivos de projeto
Inclua arquivos JAR do cliente, como adobe-forms-client.jar, no caminho de classe do seu projeto Java. Para obter informações sobre a localização desses arquivos, consulte Incluindo os arquivos da biblioteca Java da AEM Forms.
Criar uma fonte de dados XML na memória
Crie um objeto Java DocumentBuilderFactory
chamando o método DocumentBuilderFactory
class' newInstance
.
Crie um objeto Java DocumentBuilder
chamando o método DocumentBuilderFactory
do objeto newDocumentBuilder
.
Chame o método DocumentBuilder
do objeto newDocument
para instanciar um objeto org.w3c.dom.Document
.
Crie o elemento raiz da fonte de dados XML chamando o método org.w3c.dom.Document
do objeto createElement
. Isso cria um objeto Element
que representa o elemento raiz. Passe um valor de string representando o nome do elemento para o método createElement
. Converta o valor de retorno em Element
. Em seguida, acrescente o elemento raiz ao documento chamando o método Document
do objeto appendChild
e passe o objeto do elemento raiz como um argumento. As seguintes linhas de código mostram essa lógica de aplicativo:
Element root = (Element)document.createElement("transaction"); document.appendChild(root);
Crie o elemento de cabeçalho da fonte de dados XML chamando o método Document
do objeto createElement
. Passe um valor de string representando o nome do elemento para o método createElement
. Converta o valor de retorno em Element
. Em seguida, acrescente o elemento header ao elemento raiz chamando o método root
do objeto appendChild
e passe o objeto do elemento header como um argumento. Os elementos XML anexados ao elemento header correspondem à parte estática do formulário. As seguintes linhas de código mostram essa lógica de aplicativo:
Element header = (Element)document.createElement("header"); root.appendChild(header);
Crie um elemento filho que pertence ao elemento header chamando o método Document
do objeto createElement
e transmita um valor de string que representa o nome do elemento. Converta o valor de retorno em Element
. Em seguida, defina um valor para o elemento filho chamando seu método appendChild
e passe o método Document
do objeto createTextNode
como um argumento. Especifique um valor de string que apareça como o valor do elemento filho. Finalmente, acrescente o elemento filho ao elemento header chamando o método appendChild
do elemento header e transmita o objeto de elemento filho como um argumento. As seguintes linhas de código mostram essa lógica de aplicativo:
Element poNum= (Element)document.createElement("txtPONum"); poNum.appendChild(document.createTextNode("8745236985")); header.appendChild(LastName);
Adicione todos os elementos restantes ao elemento header repetindo a última subetapa para cada campo que aparece na parte estática do formulário (no diagrama da fonte de dados XML, esses campos são mostrados na seção A. (Consulte Entendendo subgrupos de dados.)
Crie o elemento detail da fonte de dados XML chamando o método Document
do objeto createElement
. Passe um valor de string representando o nome do elemento para o método createElement
. Converta o valor de retorno em Element
. Em seguida, acrescente o elemento detail ao elemento raiz, chamando o método root
do objeto appendChild
e transmitindo o objeto detail element como um argumento. Os elementos XML anexados ao elemento detail correspondem à parte dinâmica do formulário. As seguintes linhas de código mostram essa lógica de aplicativo:
Element detail = (Element)document.createElement("detail"); root.appendChild(detail);
Crie um elemento filho que pertence ao elemento detail chamando o método Document
do objeto createElement
e transmita um valor de string que representa o nome do elemento. Converta o valor de retorno em Element
. Em seguida, defina um valor para o elemento filho chamando seu método appendChild
e passe o método Document
do objeto createTextNode
como um argumento. Especifique um valor de string que apareça como o valor do elemento filho. Finalmente, acrescente o elemento filho ao elemento detail chamando o método appendChild
do elemento detail e passe o objeto de elemento filho como um argumento. As seguintes linhas de código mostram essa lógica de aplicativo:
Element txtPartNum = (Element)document.createElement("txtPartNum"); txtPartNum.appendChild(document.createTextNode("00010-100")); detail.appendChild(txtPartNum);
Repita a última subetapa para que todos os elementos XML sejam anexados ao elemento detail. Para criar corretamente a fonte de dados XML usada para preencher o formulário de pedido de compra, acrescente os seguintes elementos XML ao elemento detail: txtDescription
, numQty
e numUnitPrice
.
Repita as duas últimas subetapas para todos os itens de dados usados para pré-preencher o formulário.
Converter a fonte de dados XML
javax.xml.transform.Transformer
chamando o método estático javax.xml.transform.Transformer
do objeto newInstance
.Transformer
invocando o método TransformerFactory
do objeto newTransformer
.ByteArrayOutputStream
usando seu construtor.javax.xml.transform.dom.DOMSource
usando seu construtor e transmitindo o objeto org.w3c.dom.Document
que foi criado na etapa 1.javax.xml.transform.dom.DOMSource
usando seu construtor e transmitindo o objeto ByteArrayOutputStream
.ByteArrayOutputStream
invocando o método javax.xml.transform.Transformer
do objeto transform
e transmitindo os objetos javax.xml.transform.dom.DOMSource
e javax.xml.transform.stream.StreamResult
.ByteArrayOutputStream
na matriz de bytes.ByteArrayOutputStream
do objeto toByteArray
.com.adobe.idp.Document
usando seu construtor e transmitindo a matriz de bytes.Renderizar um formulário pré-preenchido
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. Certifique-se de usar o objeto com.adobe.idp.Document
criado nas etapas um e dois.PDFFormRenderSpec
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.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.
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): Pré-preencher o Forms com layouts flutuantes usando a API Java
Incluindo arquivos da biblioteca Java AEM Forms
Configuração das propriedades de conexão
Para pré-preencher um formulário com um layout flutuante usando a API do Forms (serviço da Web), execute as seguintes etapas:
Incluir arquivos de projeto
Criar uma fonte de dados XML na memória
Crie um objeto Java DocumentBuilderFactory
chamando o método DocumentBuilderFactory
class' newInstance
.
Crie um objeto Java DocumentBuilder
chamando o método DocumentBuilderFactory
do objeto newDocumentBuilder
.
Chame o método DocumentBuilder
do objeto newDocument
para instanciar um objeto org.w3c.dom.Document
.
Crie o elemento raiz da fonte de dados XML chamando o método org.w3c.dom.Document
do objeto createElement
. Isso cria um objeto Element
que representa o elemento raiz. Passe um valor de string representando o nome do elemento para o método createElement
. Converta o valor de retorno em Element
. Em seguida, acrescente o elemento raiz ao documento chamando o método Document
do objeto appendChild
e passe o objeto do elemento raiz como um argumento. As seguintes linhas de código mostram essa lógica de aplicativo:
Element root = (Element)document.createElement("transaction"); document.appendChild(root);
Crie o elemento de cabeçalho da fonte de dados XML chamando o método Document
do objeto createElement
. Passe um valor de string representando o nome do elemento para o método createElement
. Converta o valor de retorno em Element
. Em seguida, acrescente o elemento header ao elemento raiz chamando o método root
do objeto appendChild
e passe o objeto do elemento header como um argumento. Os elementos XML anexados ao elemento header correspondem à parte estática do formulário. As seguintes linhas de código mostram essa lógica de aplicativo:
Element header = (Element)document.createElement("header"); root.appendChild(header);
Crie um elemento filho que pertence ao elemento header chamando o método Document
do objeto createElement
e transmita um valor de string que representa o nome do elemento. Converta o valor de retorno em Element
. Em seguida, defina um valor para o elemento filho chamando seu método appendChild
e passe o método Document
do objeto createTextNode
como um argumento. Especifique um valor de string que apareça como o valor do elemento filho. Finalmente, acrescente o elemento filho ao elemento header chamando o método appendChild
do elemento header e transmita o objeto de elemento filho como um argumento. As seguintes linhas de código mostram essa lógica de aplicativo:
Element poNum= (Element)document.createElement("txtPONum"); poNum.appendChild(document.createTextNode("8745236985")); header.appendChild(LastName);
Adicione todos os elementos restantes ao elemento header repetindo a última subetapa para cada campo que aparece na parte estática do formulário (no diagrama da fonte de dados XML, esses campos são mostrados na seção A. (Consulte Entendendo subgrupos de dados.)
Crie o elemento detail da fonte de dados XML chamando o método Document
do objeto createElement
. Passe um valor de string representando o nome do elemento para o método createElement
. Converta o valor de retorno em Element
. Em seguida, acrescente o elemento detail ao elemento raiz, chamando o método root
do objeto appendChild
e transmitindo o objeto detail element como um argumento. Os elementos XML anexados ao elemento detail correspondem à parte dinâmica do formulário. As seguintes linhas de código mostram essa lógica de aplicativo:
Element detail = (Element)document.createElement("detail"); root.appendChild(detail);
Crie um elemento filho que pertence ao elemento detail chamando o método Document
do objeto createElement
e transmita um valor de string que representa o nome do elemento. Converta o valor de retorno em Element
. Em seguida, defina um valor para o elemento filho chamando seu método appendChild
e passe o método Document
do objeto createTextNode
como um argumento. Especifique um valor de string que apareça como o valor do elemento filho. Finalmente, acrescente o elemento filho ao elemento detail chamando o método appendChild
do elemento detail e passe o objeto de elemento filho como um argumento. As seguintes linhas de código mostram essa lógica de aplicativo:
Element txtPartNum = (Element)document.createElement("txtPartNum"); txtPartNum.appendChild(document.createTextNode("00010-100")); detail.appendChild(txtPartNum);
Repita a última subetapa para que todos os elementos XML sejam anexados ao elemento detail. Para criar corretamente a fonte de dados XML usada para preencher o formulário de pedido de compra, acrescente os seguintes elementos XML ao elemento detail: txtDescription
, numQty
e numUnitPrice
.
Repita as duas últimas subetapas para todos os itens de dados usados para pré-preencher o formulário.
Converter a fonte de dados XML
javax.xml.transform.Transformer
chamando o método estático javax.xml.transform.Transformer
do objeto newInstance
.Transformer
invocando o método TransformerFactory
do objeto newTransformer
.ByteArrayOutputStream
usando seu construtor.javax.xml.transform.dom.DOMSource
usando seu construtor e transmitindo o objeto org.w3c.dom.Document
que foi criado na etapa 1.javax.xml.transform.dom.DOMSource
usando seu construtor e transmitindo o objeto ByteArrayOutputStream
.ByteArrayOutputStream
invocando o método javax.xml.transform.Transformer
do objeto transform
e transmitindo os objetos javax.xml.transform.dom.DOMSource
e javax.xml.transform.stream.StreamResult
.ByteArrayOutputStream
na matriz de bytes.ByteArrayOutputStream
do objeto toByteArray
.BLOB
usando seu construtor e chame seu método setBinaryData
e passe a matriz de bytes.Renderizar um formulário pré-preenchido
Chame o método FormsService
do objeto renderPDFForm
e passe os seguintes valores:
BLOB
que contém dados a serem unidos ao formulário. Certifique-se de usar o objeto BLOB
criado nas etapas um e dois.PDFFormRenderSpecc
que armazena opções de tempo de execução. Para obter mais informações, consulte AEM Forms API Reference.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.
FormResult
obtendo o valor do membro de dados com.adobe.idp.services.holders.FormsResultHolder
do objeto value
.BLOB
que contenha dados de formulário chamando o método FormsResult
do objeto getOutputContent
.BLOB
chamando seu método getContentType
.javax.servlet.http.HttpServletResponse
chamando seu método setContentType
e transmitindo o tipo de conteúdo do objeto BLOB
.javax.servlet.ServletOutputStream
usado para gravar o fluxo de dados do formulário no navegador da Web do cliente, chamando o método javax.servlet.http.HttpServletResponse
do objeto getOutputStream
.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
.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.
Consulte também: