文档AEMAEM 教程AEM Forms 教程

在AEM Forms中使用API生成记录文档

最近更新: 2025年5月5日
  • 适用对象:
  • Experience Manager 6.4
  • Experience Manager 6.5
  • 主题:
  • 自适应表单

创建对象:

  • 有经验的
  • 开发人员

以编程方式生成记录文档(DOR)

本文说明如何使用com.adobe.aemds.guide.addon.dor.DoRService API以编程方式生成​ 记录文档。 记录文档是在自适应表单中捕获的数据的PDF版本。

  1. 以下是代码片段。 第一行获得DOR服务。
  2. 设置DoROptions。
  3. 调用DoRService的渲染方法,并将DoROptions对象传递给渲染方法
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();

要在本地系统上尝试此操作,请执行以下步骤

  1. 使用包管理器下载并安装文章资源
  2. 确保已安装并启动作为创建服务用户文章的一部分提供的DevelopingWithServiceUser捆绑包
  3. 登录到configMgr
  4. 搜索Apache Sling服务用户映射器服务
  5. 在“服务映射”部分确保以下条目​ DevelopingWithServiceUser.core:getformsresourceresolver=fd-service
  6. 打开表单
  7. 填写表单,然后单击“查看PDF ”
  8. 您应该会在浏览器的新选项卡中看到DOR

疑难解答提示

PDF不会显示在新的浏览器选项卡中:

  1. 确保没有阻止浏览器中的弹出窗口
  2. 确保以管理员身份启动AEM服务器(至少在windows上)
  3. 确保“DevelopingWithServiceUser”包处于​ 活动状态
  4. 确保系统用户“ fd-service”在以下节点/content/usergenerated/content/aemformsenablement上具有“读取”、“修改”和“创建”权限
recommendation-more-help
8de24117-1378-413c-a581-01e660b7163e