Utilisation de l’API pour générer un document d’enregistrement dans AEM Forms
Dernière mise à jour : 23 septembre 2024
- Rubriques :
- Formulaires adaptatifs
Créé pour :
- Expérimenté
- Développeur
Générer un document d’enregistrement (DOR) par programmation
Cet article illustre l’utilisation de la com.adobe.aemds.guide.addon.dor.DoRService API
pour générer un document d’enregistrement par programmation. Le document d’enregistrement est une version PDF des données capturées dans le formulaire adaptatif.
- Voici le fragment de code : La première ligne contient le service DOR.
- Définissez les DoROptions.
- Appeler la méthode de rendu du DoRService et transmettre l’objet DoROptions à la méthode de rendu
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();
Pour essayer cela sur votre système local, procédez comme suit :
- Téléchargez et installez les ressources de l’article à l’aide du gestionnaire de modules.
- Assurez-vous d’avoir installé et démarré le bundle DevelopingWithServiceUser fourni dans le cadre de l’article Créer un utilisateur de service.
- Connexion à configMgr
- Recherchez le service de mappage des utilisateurs et utilisatrices du service Apache Sling.
- Assurez-vous que l’entrée suivante DevelopingWithServiceUser.core:getformsresourceresolver=fd-service est dans la section Mappages de service.
- Ouvrir le formulaire
- Remplissez le formulaire et cliquez sur « Afficher le PDF ».
- Le document d’enregistrement doit s’afficher dans un nouvel onglet de votre navigateur.
Conseils de dépannage
Si le PDF ne s’affiche pas dans un nouvel onglet du navigateur :
- Vérifiez que vous ne bloquez pas les pop-ups dans votre navigateur.
- Assurez-vous de démarrer le serveur AEM en tant qu’administrateur ou administratrice (au moins sous Windows).
- Assurez-vous que le bundle DevelopingWithServiceUser se trouve dans l’état actif.
- Assurez-vous que l’utilisateur système fd-service possède des autorisations de lecture, de modification et de création sur le nœud
/content/usergenerated/content/aemformsenablement
.
recommendation-more-help
8de24117-1378-413c-a581-01e660b7163e