我使用以下代码在客户端填写表单后立即创建pdf文件:
function After_Submit(e){
const info = e.namedValues;
Create_PDF(info);
console.log(info);
}
function Create_PDF(info) {
const PDF_folder = DriveApp.getFolderById("folder id");
const TEMP_Folder = DriveApp.getFolderById("folder id");
const PDF_Template = DriveApp.getFileById("pdf temp id");
const newTempFile = PDF_Template.makeCopy(TEMP_Folder);
const OpenDoc = DocumentApp.openById(newTempFile.getId());
const body = OpenDoc.getBody();
console.log(body);
body.replaceText("{Code}", info['Code'][0]);
body.replaceText("{Date}", info['Date'][0]);
body.replaceText("{Name}", info['Name'][0]);
body.replaceText("{Birthdate}", info['Birthdate'][0])
body.replaceText("{Address}", info['Address'][0]);
OpenDoc.saveAndClose();
const BLOBPDF = newTempFile.getAs(MimeType.PDF);
PDF_folder.createFile(BLOBPDF).setName(info['Name'][0] + " " + info['Code'][0]);
console.log("PDF created");
TEMP_Folder.removeFile(newTempFile);
}
显然我还使用了触发器来自动执行。
现在,我需要创建一个函数,将该pdf发送到客户端在表单上给出的电子邮件,并使用他的生日"例如"作为密码!
有人能帮忙吗?
Thank you very much
不幸的是,Apps Script没有任何特定的特性或功能来设置PDF文件中的密码,要实现这样的事情,您将需要使用第三方应用程序,API或库。
要发送带有附件的电子邮件,可以使用MailApp方法。sendmail如下(以下代码段包含自解释注释):
function Create_PDF(info) {
const PDF_folder = DriveApp.getFolderById("folder id");
const TEMP_Folder = DriveApp.getFolderById("folder id");
const PDF_Template = DriveApp.getFileById("pdf temp id");
const newTempFile = PDF_Template.makeCopy(TEMP_Folder);
const OpenDoc = DocumentApp.openById(newTempFile.getId());
const body = OpenDoc.getBody();
console.log(body);
body.replaceText("{Code}", info['Code'][0]);
body.replaceText("{Date}", info['Date'][0]);
body.replaceText("{Name}", info['Name'][0]);
body.replaceText("{Birthdate}", info['Birthdate'][0])
body.replaceText("{Address}", info['Address'][0]);
OpenDoc.saveAndClose();
const BLOBPDF = newTempFile.getAs(MimeType.PDF);
///////////////////////// MODIFICATION ////////////////////////////////
// Get the file you want to send as an attachment
var file = PDF_folder.createFile(BLOBPDF).setName(info['Name'][0] + " " + info['Code'][0]);
// Send email using the function sendEmail of MailApp (recipient, subject, message, options)
MailApp.sendEmail('mike@example.com', 'Attachment example', 'PDF attached', {
name: 'Attached file',
attachments: [file.getAs(MimeType.PDF)]
});
/////////////////////////////////////////////////////////////////////////
console.log("PDF created");
TEMP_Folder.removeFile(newTempFile);
}