Renderização do HTML Forms com CustomToolbars rendering-html-forms-with-customtoolbars
Renderização do HTML Forms com barras de ferramentas personalizadas rendering-html-forms-with-custom-toolbars
O serviço Forms permite personalizar uma barra de ferramentas renderizada com um formulário HTML. Uma barra de ferramentas pode ser personalizada para alterar sua aparência, substituindo estilos CSS padrão e adicionar comportamento dinâmico, substituindo scripts Java. Uma barra de ferramentas é personalizada usando um arquivo XML chamado fscmenu.xml. Por padrão, o serviço Forms recupera esse arquivo de um local de URI especificado internamente.
folder (C:\ is the installation directory). Você pode usar uma ferramenta de extração de arquivos, como Win RAR, para abrir a adobe.
Você pode copiar o fscmenu.xml desse local, modificá-lo para atender aos seus requisitos e, em seguida, colocá-lo em um local de URI personalizado. Em seguida, usando a API de serviço do Forms, defina as opções de tempo de execução que resultam no serviço Forms usando o arquivo fscmenu.xml do local especificado. Essas ações resultam na renderização de um formulário HTML pelo serviço Forms com uma barra de ferramentas personalizada.
Além do arquivo fscmenu.xml, também é necessário obter os seguintes arquivos:
- fscmenu.js
- fscattachments.js
- fscmenu.css
- fscmenu-v.css
- fscmenu-ie.css
- fscdialog.css
fscJS é o script Java associado a cada nó. É necessário fornecer um para a variável div#fscmenu nó e, opcionalmente, para ul#fscmenuItem nós. Os arquivos JS implementam a funcionalidade principal da barra de ferramentas e os arquivos padrão funcionam.
fscCSS é uma folha de estilos associada a um nó específico. Os estilos nos arquivos CSS especificam a aparência da barra de ferramentas. fscVCSS é uma folha de estilos para uma barra de ferramentas vertical, que é exibida à esquerda do formulário HTML renderizado. fscIECSS é uma folha de estilos usada para formulários HTML que são renderizados no Internet Explorer.
Certifique-se de que todos os arquivos acima sejam referenciados no arquivo fscmenu.xml. Ou seja, no arquivo fscmenu.xml, especifique os locais de URI para apontar para esses arquivos para que o serviço Forms possa localizá-los. Por padrão, esses arquivos estão disponíveis em locais de URI que começam com palavras-chave internas FSWebRoot ou ApplicationWebRoot.
Para personalizar a barra de ferramentas, substitua as palavras-chave usando a palavra-chave externa FSToolBarURI. Essa palavra-chave representa o URI passado para o serviço Forms em tempo de execução (essa abordagem é mostrada posteriormente nesta seção).
Você também pode especificar os locais absolutos desses arquivos JS e CSS, como https://www.mycompany.com/scripts/misc/fscmenu.js. Nessa situação, não é necessário usar a variável FSToolBarURI palavra-chave.
FSToolBarURI palavra-chave ou um local absoluto.Você pode obter os arquivos JS e CSS abrindo os adobe-forms-<appserver>Arquivo .ear. Nesse arquivo, abra o adobe-forms-res.war. Todos esses arquivos estão localizados no arquivo WAR. Os formulários da adobe-<appserver>O arquivo .ear está localizado na pasta de instalação dos formulários AEM (C:\ is the installation directory). Você pode abrir os adobe-forms-<appserver>.ear usando uma ferramenta de extração de arquivos, como WinRAR.
A sintaxe XML a seguir mostra um exemplo de arquivo fscmenu.xml.
<div id="fscmenu" fscJS="FSToolBarURI/scripts/fscmenu.js" fscCSS="FSToolBarURI/fscmenu.css" fscVCSS="FSToolBarURI/fscmenu-v.css" fscIECSS="FSToolBarURI/fscmenu-ie.css">
<ul class="fscmenuItem" id="Home">
<li>
<a href="#" fscTarget="_top" tabindex="1">Home</a>
</li>
</ul>
<ul class="fscmenuItem" id="Upload" fscJS="FSToolBarURI/scripts/fscattachments.js" fscCSS="FSToolBarURI/fscdialog.css">
<li>
<a tabindex="2">Upload Attachments</a>
<ul class="fscmenuPopup" id="fscUploadAttachments">
<li>
<a href="javascript:doUploadDialog();" tabindex="3">Add ...</a>
</li>
<li>
<a href="javascript:doDeleteDialog();" tabindex="4">Delete ...</a>
</li>
</ul>
</li>
</ul>
<ul class="fscmenuItem" id="Download">
<li>
<a tabindex="100">Download Attachments</a>
<ul class="fscmenuPopup">
<li>
<a tabindex="101">None available</a>
</li>
</ul>
</li>
</ul>
</div>
Os itens a seguir descrevem como personalizar uma barra de ferramentas:
- Altere os valores de
fscJS,fscCSS,fscVCSS,fscIECSSatributos (no arquivo fscmenu.xml) para refletir os locais personalizados dos arquivos referenciados usando um dos métodos descritos nesta seção (por exemplo,fscJS="FSToolBarURI/scripts/fscmenu.js"). - Todos os arquivos CSS e JS devem ser especificados. Se nenhum dos arquivos for modificado, forneça o padrão no local personalizado. Você pode obter os arquivos padrão abrindo vários arquivos conforme descrito nesta seção.
- É permitido fornecer uma referência absoluta (por exemplo, https://www.example.com/scripts/custom-vertical-fscmenu.css) para qualquer arquivo.
- Os arquivos JS e CSS que a variável
div#fscmenusão essenciais para a funcionalidade da barra de ferramentas. Individualul#fscmenuItemnós podem ou não ter arquivos JS ou CSS de suporte.
Alteração do valor local
Como parte da personalização de uma barra de ferramentas, é possível alterar o valor do local da barra de ferramentas. Ou seja, você pode exibi-lo em outro idioma. A ilustração a seguir mostra uma barra de ferramentas personalizada exibida em francês.
Para alterar o valor do local de uma barra de ferramentas, verifique se o arquivo fscmenu.xml contém o idioma que deseja exibir. A sintaxe XML a seguir mostra o arquivo fscmenu.xml usado para exibir uma barra de ferramentas em francês.
<div id="fscmenu" fscJS="FSToolBarURI/scripts/fscmenu.js" fscCSS="FSToolBarURI/fscmenu.css" fscVCSS="FSToolBarURI/fscmenu-v.css" fscIECSS="FSToolBarURI/fscmenu-ie.css">
<ul class="fscmenuItem" id="Home">
<li>
<a href="#" fscTarget="_top" tabindex="1">Accueil</a>
</li>
</ul>
<ul class="fscmenuItem" id="Upload" fscJS="FSToolBarURI/scripts/fscattachments.js" fscCSS="FSToolBarURI/fscdialog.css">
<li>
<a tabindex="2">Télécharger les pièces jointes</a>
<ul class="fscmenuPopup" id="fscUploadAttachments">
<li>
<a href="javascript:doUploadDialog();" tabindex="3">Ajouter...</a>
</li>
<li>
<a href="javascript:doDeleteDialog();" tabindex="4">Supprimer...</a>
</li>
</ul>
</li>
</ul>
<ul class="fscmenuItem" id="Download">
<li>
<a tabindex="100">Télécharger les pièces jointes</a>
<ul class="fscmenuPopup">
<li>
<a tabindex="101">Aucune disponible</a>
</li>
</ul>
</li>
</ul>
</div>
Além disso, especifique um valor de local válido chamando a variável HTMLRenderSpec do objeto setLocale e transmitindo um valor de string que especifica o valor de localidade. Por exemplo, passar fr_FR para especificar francês. O serviço Forms é fornecido com barras de ferramentas localizadas.
Para obter mais informações sobre o serviço Forms, consulte Referência de serviços para o AEM Forms.
Resumo das etapas summary-of-steps
Para renderizar um formulário HTML que contenha uma barra de ferramentas personalizada, execute estas tarefas:
- Inclua arquivos de projeto.
- Crie um objeto da API Java do Forms.
- Faça referência a um arquivo XML fscmenu personalizado.
- Renderize um formulário HTML.
- 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, inclua os arquivos proxy.
Criar um objeto da API Java do Forms
Antes de executar programaticamente uma operação compatível com o serviço Forms, é necessário criar um objeto cliente Forms.
Referência a um arquivo XML fscmenu personalizado
Para renderizar um formulário HTML que contenha uma barra de ferramentas personalizada, consulte um arquivo XML fscmenu que descreve a barra de ferramentas. (Esta seção fornece dois exemplos de um arquivo XML fscmenu.) Além disso, verifique se o arquivo fscmenu.xml especifica os locais de todos os arquivos referenciados corretamente. Como mencionado anteriormente nesta seção, verifique se todos os arquivos são referenciados pela variável FSToolBarURI palavra-chave ou seus locais absolutos.
Renderizar um formulário de HTML
Para renderizar um formulário HTML, especifique um design de formulário que foi criado no Designer e salvo como um arquivo XDP. Selecione também um tipo de transformação HTML. Por exemplo, você pode especificar o tipo HTML transformation que renderiza um HTML dinâmico para o Internet Explorer 5.0 ou posterior.
A renderização de um formulário HTML também requer valores, como valores URI para renderizar outros tipos de formulário.
Gravar o fluxo de dados do formulário no navegador da Web cliente
Quando o serviço Forms renderiza um formulário HTML, ele retorna um fluxo de dados de formulário que você deve gravar no navegador da Web cliente para tornar o formulário HTML visível para os usuários.
Consulte também
Renderizar um formulário HTML com uma barra de ferramentas personalizada usando a API do Java
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
Renderizar um formulário HTML com uma barra de ferramentas personalizada usando a API do Java render-an-html-form-with-a-custom-toolbar-using-the-java-api
Renderize um Formulário HTML que contém uma barra de ferramentas personalizada usando a API de serviço 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 da API Java do Forms
- Crie um
ServiceClientFactoryobjeto que contém propriedades de conexão. - Crie um
FormsServiceClientusando seu construtor e passando oServiceClientFactoryobjeto.
- Crie um
-
Referência a um arquivo XML fscmenu personalizado
- Crie um
HTMLRenderSpecusando seu construtor. - Para renderizar um formulário HTML com uma barra de ferramentas, chame o
HTMLRenderSpecdo objetosetHTMLToolbare passar umHTMLToolbarvalor de enum. Por exemplo, para exibir uma barra de ferramentas HTML vertical, passeHTMLToolbar.Vertical. - Especifique o local do arquivo XML fscmenu chamando o
HTMLRenderSpecdo objetosetToolbarURIe transmitindo um valor de string que especifica a localização do URI do arquivo XML. - Se aplicável, defina o valor da localidade chamando a variável
HTMLRenderSpecdo objetosetLocalee transmitindo um valor de string que especifica o valor de localidade. O valor padrão é inglês.
note note NOTE O Início Rápido associado a esta seção define este valor como fr_FR. - Crie um
-
Renderizar um formulário de HTML
Chame o
FormsServiceClientdo objetorenderHTMLForme transmita os seguintes valores:- Um valor de string que especifica o nome do design de formulário, incluindo a extensão de nome de arquivo. Se você fizer referência a um design de formulário que faz parte de um aplicativo Forms, especifique o caminho completo, como
Applications/FormsApplication/1.0/FormsFolder/Loan.xdp. - A
TransformTovalor enum que especifica o tipo de preferência HTML. Por exemplo, para renderizar um formulário HTML compatível com o HTML dinâmico para o Internet Explorer 5.0 ou posterior, especifiqueTransformTo.MSDHTML. - A
com.adobe.idp.Documentobjeto que contém dados para mesclar com o formulário. Se não quiser mesclar dados, passe um vaziocom.adobe.idp.Documentobjeto. - O
HTMLRenderSpecobjeto que armazena opções de tempo de execução HTML. - Um valor de string que especifica a variável
HTTP_USER_AGENTvalor de cabeçalho, comoMozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322). - A
URLSpecobjeto que armazena valores de URI necessários para renderizar um formulário HTML. - A
java.util.HashMapque armazena anexos de arquivo. Este é um parâmetro opcional e você pode especificarnullse não quiser anexar arquivos ao formulário.
O
renderHTMLFormmétodo retorna umFormsResultobjeto que contém um fluxo de dados de formulário que deve ser gravado no navegador da Web do cliente. - Um valor de string que especifica o nome do design de formulário, incluindo a extensão de nome de arquivo. Se você fizer referência a um design de formulário que faz parte de um aplicativo Forms, especifique o caminho completo, como
-
Gravar o fluxo de dados do formulário no navegador da Web cliente
- Crie um
com.adobe.idp.Documentchamando oFormsResultobjeto "sgetOutputContentmétodo . - Obtenha o tipo de conteúdo da variável
com.adobe.idp.Documentao invocar seugetContentTypemétodo . - Defina as
javax.servlet.http.HttpServletResponsetipo de conteúdo do objeto, chamando seusetContentTypee a transmissão do tipo de conteúdo docom.adobe.idp.Documentobjeto. - Crie um
javax.servlet.ServletOutputStreamobjeto usado para gravar o fluxo de dados do formulário no navegador da Web cliente chamando ojavax.servlet.http.HttpServletResponsedo objetogetOutputStreammétodo . - Crie um
java.io.InputStreamchamando ocom.adobe.idp.Documentdo objetogetInputStreammétodo . - Crie uma matriz de bytes e preencha-a com o fluxo de dados do formulário, chamando o
InputStreamdo objetoreade transmitindo a matriz de bytes como um argumento. - Chame o
javax.servlet.ServletOutputStreamdo objetowritepara enviar o fluxo de dados do formulário para o navegador da Web cliente. Transmita a matriz de bytes para awritemétodo .
- Crie um
Consulte também
Renderização de um formulário HTML com uma barra de ferramentas personalizada usando a API de serviço da Web rendering-an-html-form-with-a-custom-toolbar-using-the-web-service-api
Renderize um formulário HTML que contenha uma barra de ferramentas personalizada usando a API de serviço do Forms (serviço da Web):
-
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.
-
Criar um objeto da API Java do Forms
Crie um
FormsServicee definir valores de autenticação. -
Referência a um arquivo XML fscmenu personalizado
- Crie um
HTMLRenderSpecusando seu construtor. - Para renderizar um formulário HTML com uma barra de ferramentas, chame o
HTMLRenderSpecdo objetosetHTMLToolbare passar umHTMLToolbarvalor de enum. Por exemplo, para exibir uma barra de ferramentas HTML vertical, passeHTMLToolbar.Vertical. - Especifique o local do arquivo XML fscmenu chamando o
HTMLRenderSpecdo objetosetToolbarURIe transmitindo um valor de string que especifica a localização do URI do arquivo XML. - Se aplicável, defina o valor da localidade chamando a variável
HTMLRenderSpecdo objetosetLocalee transmitindo um valor de string que especifica o valor de localidade. O valor padrão é inglês.
note note NOTE O Início Rápido associado a esta seção define este valor como fr_FR. - Crie um
-
Renderizar um formulário de HTML
Chame o
FormsServicedo objetorenderHTMLForme transmita os seguintes valores:- Um valor de string que especifica o nome do design de formulário, incluindo a extensão de nome de arquivo. Se você fizer referência a um design de formulário que faz parte de um aplicativo Forms, especifique o caminho completo, como
Applications/FormsApplication/1.0/FormsFolder/Loan.xdp. - A
TransformTovalor enum que especifica o tipo de preferência HTML. Por exemplo, para renderizar um formulário HTML compatível com o HTML dinâmico para o Internet Explorer 5.0 ou posterior, especifiqueTransformTo.MSDHTML. - A
BLOBobjeto que contém dados para mesclar com o formulário. Se você não deseja mesclar dados, usenull. - O
HTMLRenderSpecobjeto que armazena opções de tempo de execução HTML. - Um valor de string que especifica a variável
HTTP_USER_AGENTvalor de cabeçalho, comoMozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322). Você pode passar uma string vazia se não quiser definir esse valor. - A
URLSpecobjeto que armazena valores de URI necessários para renderizar um formulário HTML. - A
java.util.HashMapque armazena anexos de arquivo. Esse parâmetro é opcional e você pode especificarnullse você não pretende anexar arquivos ao formulário. - Um vazio
com.adobe.idp.services.holders.BLOBHolderque é preenchido pela variávelrenderHTMLFormmétodo . Esse valor de parâmetro armazena o formulário renderizado. - Um vazio
com.adobe.idp.services.holders.BLOBHolderque é preenchido pela variávelrenderHTMLFormmétodo . Esse parâmetro armazena os dados XML de saída. - Um vazio
javax.xml.rpc.holders.LongHolderque é preenchido pela variávelrenderHTMLFormmétodo . Esse argumento armazena o número de páginas no formulário. - Um vazio
javax.xml.rpc.holders.StringHolderque é preenchido pela variávelrenderHTMLFormmétodo . Esse argumento armazena o valor da localidade. - Um vazio
javax.xml.rpc.holders.StringHolderque é preenchido pela variávelrenderHTMLFormmétodo . Esse argumento armazena o valor de renderização de HTML usado. - Um vazio
com.adobe.idp.services.holders.FormsResultHolderque conterá os resultados desta operação.
O
renderHTMLFormO método preenche a variávelcom.adobe.idp.services.holders.FormsResultHolderobjeto 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. - Um valor de string que especifica o nome do design de formulário, incluindo a extensão de nome de arquivo. Se você fizer referência a um design de formulário que faz parte de um aplicativo Forms, especifique o caminho completo, como
-
Gravar o fluxo de dados do formulário no navegador da Web cliente
- Crie um
FormResultobtendo o valor da variávelcom.adobe.idp.services.holders.FormsResultHolderdo objetovaluemembro de dados. - Crie um
BLOBobjeto que contém dados de formulário chamando oFormsResultdo objetogetOutputContentmétodo . - Obtenha o tipo de conteúdo da variável
BLOBao invocar seugetContentTypemétodo . - Defina as
javax.servlet.http.HttpServletResponsetipo de conteúdo do objeto, chamando seusetContentTypee a transmissão do tipo de conteúdo doBLOBobjeto. - Crie um
javax.servlet.ServletOutputStreamobjeto usado para gravar o fluxo de dados do formulário no navegador da Web cliente chamando ojavax.servlet.http.HttpServletResponsedo objetogetOutputStreammétodo . - Crie uma matriz de bytes e preencha-a chamando a variável
BLOBdo objetogetBinaryDatamétodo . Essa tarefa atribui o conteúdo daFormsResultpara a matriz de bytes. - Chame o
javax.servlet.http.HttpServletResponsedo objetowritepara enviar o fluxo de dados do formulário para o navegador da Web cliente. Transmita a matriz de bytes para awritemétodo .
- Crie um
Consulte também
Chamada de AEM Forms usando codificação Base64