Representar PDF interactivo con los servicios de Forms en AEM Forms
Creado para:
- Intermedio
- Desarrollador
Uso de la API de servicio de Forms en AEM Forms para procesar PDF interactivo
En este artículo echaremos un vistazo al siguiente servicio
- FormsService: se trata de un servicio muy versátil que le permite exportar e importar datos desde y hacia archivos PDF, así como generar PDF interactivos combinando datos xml en plantillas xdp
El javadoc oficial para la API de AEM Forms se enumera aquí
El siguiente fragmento de código procesa el PDF interactivo mediante la operación renderPDFForm de FormsService. El archivo schengen.xdp es una plantilla que se utiliza para combinar los datos 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;
Línea 1: ubicación de la carpeta que contiene la plantilla xdp
Línea2-4: Crear PDFFormRenderOptions y establecer sus propiedades
Línea 7: Generar PDF interactivo mediante la operación del servicio renderPDFForm de FormsService
Línea 11: Devuelve el PDF interactivo generado a la aplicación que realiza la llamada
Para probar el paquete de muestra en el sistema
-
Descargue e instale el paquete de ejemplo DocumentServices mediante la consola web Felix
-
Descargue e instale el paquete mediante el administrador de paquetes de AEM
-
Búsqueda del filtro CSRF de Adobe Granite
-
Añada la siguiente ruta en las secciones excluidas y guarde
-
/bin/generateinteractivepdf
-
Busque Servicio de asignador de usuarios del servicio Apache Sling y haga clic para abrir las propiedades
- Haga clic en el icono + (más) para agregar la siguiente asignación de servicio
- DevelopingWithServiceUser.core:getformsresourceresolver=fd-service
- Haga clic en Guardar
- Haga clic en el icono + (más) para agregar la siguiente asignación de servicio
-
Rellene un par de campos y, a continuación, haga clic en el … Descargar y rellenar botón
-
El PDF interactivo debe descargarse en el sistema local
El paquete de ejemplo contiene el perfil personalizado asociado al formulario móvil. Explore el archivo customtoolbar.jsp. Este jsp extrae los datos del formulario móvil y realiza una petición POST al servlet montado en la ruta /bin/generateinteractivepdf. El servlet devuelve el PDF interactivo a la aplicación que realiza la llamada. A continuación, el código de customtoolbar.jsp descarga el archivo en el sistema local