Renderização do PDF interativo usando os serviços da Forms no AEM Forms
Utilização da API de serviço do Forms no AEM Forms para renderizar o PDF interativo
Neste artigo, analisaremos o seguinte serviço
- FormsService — é um serviço muito versátil que permite exportar/importar dados de e para um arquivo do PDF e também gerar PDF interativo mesclando dados xml com um modelo xdp
O javadoc oficial para a API do AEM Forms está listado aqui
O trecho de código a seguir renderiza o pdf interativo usando a operação renderPDFForm do FormsService. O schengen.xdp é o modelo que está sendo usado para mesclar os dados xml.
String uri = "crx:///content/dam/formsanddocuments";
PDFFormRenderOptions renderOptions = new PDFFormRenderOptions();
renderOptions.setAcrobatVersion(AcrobatVersion.Acrobat_11);
renderOptions.setContentRoot(uri);
Document interactivePDF = null;
try {
interactivePDF = formsService.renderPDFForm("schengen.xdp", xmlData, renderOptions);
} catch (FormsServiceException e) {
e.printStackTrace();
}
return interactivePDF;
Linha 1: local da pasta que contém o modelo xdp
Linha 2-4: Criar PDFFormRenderOptions e definir suas propriedades
Linha 7: gerar o PDF interativo usando a operação de serviço renderPDFForm do FormsService
Linha 11: retorna o pdf interativo gerado para o aplicativo de chamada
Para testar o pacote de exemplo em seu sistema
-
Baixe e instale o Pacote de amostra de serviços de documento usando o Felix Web Console
-
Baixe e instale o pacote usando o gerenciador de pacotes da AEM
-
Pesquisar filtro CSRF do Adobe Granite
-
Adicione o seguinte caminho nas seções excluídas e salve
-
/bin/generateinteractivepdf
-
Pesquise por Serviço Mapeador de Usuários do Apache Sling Service e clique em para abrir as propriedades
- Clique no ícone + (mais) para adicionar o seguinte Service Mapping
- DevelopingWithServiceUser.core:getformsresourceresolver=fd-service
- Clique em "Salvar"
- Clique no ícone + (mais) para adicionar o seguinte Service Mapping
-
Preencha alguns campos e clique em Baixar e preencher …Botão
-
O pdf interativo deve ser baixado no sistema local
O pacote de exemplo contém o perfil personalizado associado ao Formulário para dispositivos móveis. Explore o arquivo customtoolbar.jsp. Este jsp extrai os dados do formulário para publicação de conteúdo para dispositivos móveis e faz uma solicitação POST para o servlet montado no caminho /bin/generateinteractivepdf. O servlet retorna o pdf interativo para o aplicativo chamador. O código no customtoolbar.jsp faz o download do arquivo para o seu sistema local