如何使用 Google Apps 脚本将 PDF 正文格式化为看起来像电子邮件?
Posted
技术标签:
【中文标题】如何使用 Google Apps 脚本将 PDF 正文格式化为看起来像电子邮件?【英文标题】:How to format PDF body to look like the email using Google Apps Script? 【发布时间】:2021-12-27 16:59:07 【问题描述】:下面的代码确实获得了表单响应,并使用格式如下的正文通过电子邮件发送它:
问题/标题1
响应1
问题/标题2
响应2
但是,创建的 pdf 将其全部显示在一行中,如下所示: 新的回复表单:问题/标题 1 响应 1 问题/标题 2 响应 2...
如何创建它以使其看起来像上面格式化的电子邮件正文?
function onFormSubmit(e)
// Get the response that was submitted.
var formResponse = e.response;
// Get the items (i.e., responses to various questions)
// that were submitted.
var itemResponses = formResponse.getItemResponses();
// Create a variable emailBody to store the body
// of the email notification to be sent.
var emailBody = "New form response:\n\n";
// Put together the email body by appending all the
// questions & responses to the variable emailBody.
itemResponses.forEach(function(itemResponse)
var title = itemResponse.getItem().getTitle();
var response = itemResponse.getResponse();
emailBody += title + "\n" + response + "\n\n";
);
// Send the email notification using the
// sendEmail() function.
sendEmail(emailBody);
var folderID = "SOME_FOLDERID";
var intermediate = DriveApp.createFile('New Form Response','<b>'+ emailBody +'</b>', MimeType.html);
var blob = intermediate.getAs(MimeType.PDF);
Logger.log(blob.getContentType());
var pdfFile = DriveApp.createFile(blob);
DriveApp.getFolderById(folderID).addFile(pdfFile)
DriveApp.getFileById(intermediate.getId()).setTrashed(true);
// A function that sends the email
// notification.
function sendEmail(emailBody)
MailApp.sendEmail("EMAIL_ADDRESS", "New form response", emailBody);
【问题讨论】:
【参考方案1】:您需要为emailBody
中的新行使用<br>
标签,因为您在创建文件时使用的是HTML 类型。您可以使用String.replaceAll() 将\n
替换为<br>
。
//Replace all "\n" with "<br>"
emailBody = emailBody.replaceAll("\n","<br>");
var intermediate = DriveApp.createFile('New Form Response','<b>'+ emailBody +'</b>', MimeType.HTML);
输出:
注意:
实际上,您可以在 html 正文中使用\n
作为换行符,但您需要在 css 中设置它。见Line break in HTML with '\n'
【讨论】:
正确!谢谢!以上是关于如何使用 Google Apps 脚本将 PDF 正文格式化为看起来像电子邮件?的主要内容,如果未能解决你的问题,请参考以下文章
如何在对 Google Apps 脚本的发布请求中捕获上传的文件?
如何使用 Google Apps 脚本将公式添加到 Google 表格?
如何使用 Google Apps 脚本将来自 Google 电子表格和 ScriptDB 的数据插入 BigQuery 表