【发布时间】:2014-07-23 21:40:03
【问题描述】:
我有一个基于客户在线填写的 Google 表单的 Google 电子表格的 Google Apps 脚本。该脚本由 OnFormSubmit 触发,并基于 Google Doc 模板生成 pdf,并使用 MailApp.sendEmail 通过电子邮件将 pdf 发送给我。
这个脚本直到最近都运行良好。脚本运行成功,但 pdf 输出不正确。现在,脚本中似乎忽略了留空的字段,因此我的 pdf 输出显示了下一个非空白字段的值。啊!
有人知道这里发生了什么吗?
以下是我的脚本示例:
var docTemplate = "1FZL4rVe0LLpvMtIsq_3-pwv5POllIsyYThjfemkbkfg";
var docName = "Travel Details";
function onFormSubmit(e) {
var last = e.values[1];
var first = e.values[2];
var order = e.values[3];
var date = e.values[4];
var gender = e.values[5];
var email = "example@gmail.com";
var copyId = DocsList.getFileById(docTemplate)
.makeCopy(docName+' for '+last + ', ' + first)
.getId();
var copyDoc = DocumentApp.openById(copyId);
var copyBody = copyDoc.getActiveSection();
copyBody.replaceText('keyLast', last);
copyBody.replaceText('keyFirst', first);
copyBody.replaceText('keyOrder', order);
copyBody.replaceText('keyDate', date);
copyBody.replaceText('keyGender', gender);
copyDoc.saveAndClose();
var pdf = DocsList.getFileById(copyId).getAs("application/pdf");
MailApp.sendEmail(email, subject, "", {htmlBody: office_message, attachments: pdf,
noReply:true});
DocsList.getFileById(copyId).setTrashed(true);
}
问题示例:如果客户将表单上的日期字段留空,则生成的 pdf 中的性别值将放在日期值应位于的位置,并且 pdf 上的性别值显示“未定义”。
有什么想法吗?
【问题讨论】:
标签: pdf google-apps-script google-spreadsheet-api mailmerge