AEM Forms(PDF 类型)文件附件

AEM Forms (PDF Type) File Attachments

我正在尝试将文件附加到我的 AEM 表单。这个想法是将附件嵌入PDF;提交 PDF 后,后端系统将能够从 PDF 中提取附件。

我似乎找不到任何关于如何去做的例子,这让我想知道这是不是一个限制。但是,在下面的 adobe 网站上,实际上针对所有 AEM 表单类型声明了 "Support for file attachments"。

https://helpx.adobe.com/aem-forms/6/introduction-aem-forms.html

请指教!谢谢!

您可以使用 HTML5 表单上传、预览和提交附件。默认情况下,附件支持是禁用的。要启用附件支持:

1- 使用 mutiselect 字符串创建自定义配置文件 属性 mfAttachmentOptions。

2- 在自定义配置文件中,指定属性 fileSizeLimit、multiSelect 和 buttonText 以配置文件附件小部件的选项。根据需要,您还可以指定更多的自定义属性。

3- 在自定义配置文件中,使用以下配置:

  • multiSelect -> true 或 false(默认为 true)
  • fileSizeLimit -> value_in_mb(比如 5)(默认为 2 MB)
  • buttonText -> 弹出窗口的按钮文本 window(默认为 "Attach")
  • 接受 -> 要接受的文件类型(默认为"audio/, video/, image/, text/, .pdf")

4- 使用元数据编辑器 select 您在上面为 HTML 5 个表单创建的自定义配置文件。

5- 使用自定义配置文件呈现您的表单模板,附件图标将出现在表单工具栏上。

6- 单击附件图标,出现附件selection 对话框。浏览并 select 附件并单击附加。

启用附件后,HTML5 表单提交多部分数据。多部分提交数据有两个部分 dataXml 和附件。

参考:https://helpx.adobe.com/aem-forms/6-1/html5-forms/enabling-attachments-html5-form.html

下面是 "Add Attachment" 按钮的代码。

var oDoc = event.target;
var doccount = parseInt(colhead.attcount.rawValue);
colhead.attcount.rawValue = doccount + 1;
Trusted_ImportDataObject(oDoc, doccount);
var oAttachment = oDoc.getDataObject("attachment_" + doccount);
var DOsize = oAttachment.size;
var DOmimeType = oAttachment.MIMEType;
if (DOmimeType == null) DOmimeType = "reject";
if ((DOsize > 1100000) || (DOmimeType.indexOf("image/") != 0)) {
    xfa.host.messageBox("Attachemtns must be an image and smaller than 1 Megabyte");
    oDoc.removeDataObject("attachment_" + doccount);
} else {    
    var attachPath = oAttachment.path;
    AttachFileName.rawValue = attachPath;
    AttachMIMEType.rawValue = oAttachment.MIMEType;
    AttachHref.rawValue = oAttachment.name;
}

请注意,Reader 启用文件附件需要扩展名。否则你会得到这个错误:

NotAllowedError: Security settings prevent access to this property or method.
Doc.importDataObject:6:XFA:CTR[0]:Page6[0]:part6[0]:body[0]:attachitem[0]:AddAttachment[0]:click