在AEM Forms中使用输出和Forms服务进行开发 developing-with-output-and-forms-services-in-aem-forms
了解如何在AEM Forms中使用Output和Forms Service API进行开发。
在本文中,我们将看一看以下内容
- 输出服务 — 通常,此服务用于将xml数据与xdp模板或pdf合并,以生成拼合的pdf。
- FormsService — 这是一项功能非常广泛的服务,允许您将xdp渲染为pdf,并且将数据从PDF文件中导出/导入。
以下代码片段从PDF文件中导出数据
javax.servlet.http.Part pdfPart = request.getPart("pdffile");
String filePath = request.getParameter("saveLocation");
java.io.InputStream pdfIS = pdfPart.getInputStream();
com.adobe.aemfd.docmanager.Document pdfDocument = new com.adobe.aemfd.docmanager.Document(pdfIS);
com.adobe.fd.forms.api.FormsService formsservice = sling.getService(com.adobe.fd.forms.api.FormsService.class);
com.adobe.aemfd.docmanager.Document xmlDocument = formsservice.exportData(pdfDocument,com.adobe.fd.forms.api.DataFormat.Auto);
第1行从请求中提取PDF文件
Line2从请求中提取saveLocation
第5行获取FormsService
第6行从PDF文件中导出xmlData
在系统上测试示例包
安装包后,您必须在AdobeGranite CSRF筛选器中允许列表以下URL。
- 请按照以下所述步骤列入允许列表上述路径。
- 登录到configMgr
- 搜索AdobeGranite CSRF筛选器
- 在排除的部分中添加以下3个路径并保存
- /content/AemFormsSamples/mergedata
- /content/AemFormsSamples/exportdata
- /content/AemFormsSamples/outputservice
- /content/AemFormsSamples/renderxdp
- 搜索“Sling引用过滤器”
- 选中“允许为空”复选框。 (此设置仅用于测试目的)
测试样本
可通过多种方法来测试示例代码。 最快、最轻松的是使用Postman应用程序。 Postman允许您向服务器发出POST请求。
- 在您的系统上安装Postman应用程序。
- 启动应用程序并输入相应的URL
- 确保您从下拉列表中选择“POST”
- 确保将“Authorization”指定为“Basic Auth”。 指定AEM Server用户名和密码
- 在body选项卡中指定请求参数
- 单击发送按钮
此软件包包含4个示例。 以下段落说明了何时使用输出服务或Forms服务、服务的URL以及每个服务期望的输入参数
使用OutputService将数据与xdp模板合并
-
使用输出服务将数据与xdp或pdf文档合并以生成拼合的pdf
-
POSTURL: http://localhost:4502/content/AemFormsSamples/outputservice.html
-
请求参数 —
- xdp_or_pdf_file :要与数据合并的xdp或pdf文件
- xmlfile:与xdp_or_pdf_file合并的xml数据文件
- saveLocation:将渲染文档保存在文件系统中的位置。 例如c:\documents\sample.pdf
使用FormsService API
导入数据
-
使用FormsService importData将数据导入PDF文件
-
POSTURL - http://localhost:4502/content/AemFormsSamples/mergedata.html
-
请求参数:
- pdf文件 :要与它合并数据的pdf文件
- xmlfile:与pdf文件合并的xml数据文件
- saveLocation:将渲染文档保存在文件系统中的位置。 例如
c:\\outputsample.pdf
。
导出数据
-
使用FormsService exportData API从PDF文件导出数据
-
POSTURL - http://localhost:4502/content/AemFormsSamples/exportdata.html
-
请求参数:
- pdf文件 :要从中导出数据的pdf文件
- saveLocation:在文件系统中保存导出数据的位置。 例如c:\documents\exported_data.xml
渲染XDP
- 将XDP模板渲染为静态/动态pdf
- 使用FormsService renderPDFForm API将xdp模板渲染为PDF
- POSTURL - http://localhost:4502/content/AemFormsSamples/renderxdp?xdpName=f1040.xdp
- 请求参数:
- xdpName:要呈现为pdf的xdp文件的名称
recommendation-more-help
8de24117-1378-413c-a581-01e660b7163e