Adobe PDF表单添加邮件发送按钮报Unterminated String Literal错误求解
Adobe PDF表单邮件唤起功能错误修复方案
错误根源
你遇到的「Unterminated String Literal」(未终止字符串字面量)报错,本质是原有代码存在多处基础语法问题:
- 字符串字面量未用引号包裹,比如
Information Form、表单字段名No1LastName都是固定字符串,不能直接裸写 - 字符串未正确闭合,部分行末尾漏写结束引号、多余拼接符号
+ submitForm、mailDoc的参数对象格式错误,正文内容没有对应到正确的参数键,直接裸写在对象结构内- 部分行末尾漏写语句结束分号,取表单字段值时遗漏
.value属性
可用实现代码
方案1:使用mailDoc方法(推荐,参数更直观)
// 配置收件人地址 var cToAddr = "email@email.com"; // 配置主题:拼接两个姓名字段的值 var cSubLine = "Information Form - " + this.getField("No1LastName").value + ", " + this.getField("No2LastName").value; // 配置邮件正文 var cBody = "Please find the attached Information Form. Thank you for your considerate attention to the attached."; // 唤起邮件客户端,自动附加当前PDF为附件 this.mailDoc({ bUI: true, cTo: cToAddr, cSubject: cSubLine, cMsg: cBody });
如果需要用表单里的MyTextField作为主题内容,调整cSubLine赋值即可:
var cSubLine = "Information Form - " + this.getField("MyTextField").value;
方案2:使用submitForm方法
// 从表单取自定义主题内容 var customSubject = this.getField("MyTextField").value; // 拼接mailto链接,encodeURIComponent用于处理主题内的空格、特殊符号避免解析错误 var mailtoUrl = "mailto:email@email.com?subject=" + encodeURIComponent("Information Form " + customSubject); // 提交表单为PDF附件 this.submitForm({ cURL: mailtoUrl, cSubmitAs: "PDF" });
注意事项
- 所有表单字段名必须加英文双引号包裹,作为
getField的入参,且要和你PDF里实际设置的字段名完全一致 - 如果收件人、主题、正文包含中文或特殊符号,建议用
encodeURIComponent()包裹对应内容,避免mailto链接解析异常 - 该功能仅支持在Adobe Acrobat/Reader桌面客户端打开的PDF生效,浏览器内置PDF阅读器、第三方轻量PDF工具一般不支持运行这类JS扩展脚本
内容的提问来源于stack exchange,提问作者Mbarrett
相关产品推荐
相关产品推荐

