Uso de API para generar un documento de registro en AEM Forms

Generar documento de registro (DOR) mediante programación

Este artículo ilustra el uso de la variable com.adobe.aemds.guide.addon.dor.DoRService API para generar Documento de registro mediante programación. Documento de registro es una versión PDF de los datos capturados en el formulario adaptable.

  1. El siguiente es el fragmento de código. La primera línea recibe el servicio DOR.
  2. Establezca DoROptions.
  3. Invocar el método render del DoRService y pasar el objeto DoROptions al método render
String dataXml = request.getParameter("data");
System.out.println("Got " + dataXml);
Session session;
com.adobe.aemds.guide.addon.dor.DoRService dorService = sling.getService(com.adobe.aemds.guide.addon.dor.DoRService.class);
System.out.println("Got ... DOR Service");
com.mergeandfuse.getserviceuserresolver.GetResolver aemDemoListings = sling.getService(com.mergeandfuse.getserviceuserresolver.GetResolver.class);
System.out.println("Got aem DemoListings");
resourceResolver = aemDemoListings.getFormsServiceResolver();
session = resourceResolver.adaptTo(Session.class);
resource = resourceResolver.getResource("/content/forms/af/sandbox/1201-borrower-payments");
com.adobe.aemds.guide.addon.dor.DoROptions dorOptions = new com.adobe.aemds.guide.addon.dor.DoROptions();
dorOptions.setData(dataXml);
dorOptions.setFormResource(resource);
java.util.Locale locale = new java.util.Locale("en");
dorOptions.setLocale(locale);
com.adobe.aemds.guide.addon.dor.DoRResult dorResult = dorService.render(dorOptions);
byte[] fileBytes = dorResult.getContent();
com.adobe.aemfd.docmanager.Document dorDocument = new com.adobe.aemfd.docmanager.Document(fileBytes);
resource = resourceResolver.getResource("/content/usergenerated/content/aemformsenablement");
Node paydotgov = resource.adaptTo(Node.class);
java.util.Random r = new java.util.Random();
String nodeName = Long.toString(Math.abs(r.nextLong()), 36);
Node fileNode = paydotgov.addNode(nodeName + ".pdf", "nt:file");

System.out.println("Created file Node...." + fileNode.getPath());
Node contentNode = fileNode.addNode("jcr:content", "nt:resource");
Binary binary = session.getValueFactory().createBinary(dorDocument.getInputStream());
contentNode.setProperty("jcr:data", binary);
JSONWriter writer = new JSONWriter(response.getWriter());
writer.object();
writer.key("filePath");
writer.value(fileNode.getPath());
writer.endObject();
session.save();

Para probar esto en su sistema local, siga los siguientes pasos

  1. Descargue e instale los recursos del artículo mediante el administrador de paquetes
  2. Asegúrese de que ha instalado e iniciado el paquete DevelopingWithServiceUser proporcionado como parte de Artículo Crear usuario de servicio
  3. Iniciar sesión en configMgr
  4. Buscar el servicio de asignador de usuarios del servicio Apache Sling
  5. Asegúrese de introducir la siguiente entrada DevelopingWithServiceUser.core:getformsresourceresolver=fd-service en la sección Asignaciones de servicios
  6. Abrir el formulario
  7. Complete el formulario y haga clic en "Ver PDF"
  8. Debería ver DOR en la nueva pestaña del navegador

Consejos para la resolución de problemas

El PDF no se muestra en la nueva pestaña del explorador:

  1. Asegúrese de que no está bloqueando las ventanas emergentes en su explorador
  2. Asegúrese de que está iniciando AEM servidor como administrador (al menos en windows)
  3. Asegúrese de que el paquete "DevelopingWithServiceUser" esté en estado activo
  4. Asegúrese de que el usuario del sistema ' fd-service' tiene permisos de lectura, modificación y creación en el siguiente nodo /content/usergenerated/content/aemformsenablement

En esta página