Google App 脚本从文档模板库创建文件 PDF
Google App Script create a file PDF from document template base
关于我的post:
关于下面描述的功能:
function submitData(form) {
var subject='New Feedback';
var body=Utilities.formatString('name: %s <br />Email: %s<br />Comment: %s', form.name,form.email,form.comment);
var folderId = "my-folder-ID"; // Please set the folder ID. // Added
var blob = Utilities.newBlob(body, MimeType.HTML, form.name).getAs(MimeType.PDF); // Added
var file = DriveApp.getFolderById(folderId).createFile(blob); // Added
var aliases = GmailApp.getAliases()
Logger.log(aliases); //returns the list of aliases you own
Logger.log(aliases[0]); //returns the alias located at position 0 of the aliases array
GmailApp.sendEmail('my-email@my-email.com','From an alias', 'A message from an alias!', {'from': aliases[0],subject: subject,htmlBody: body, attachments: [blob]}); // Modified
// return file.getUrl(); // Modified
return Utilities.formatString('name: %s <br />Email: %s<br />Comment: %s<br />PDF: %s', form.name,form.email,form.comment,file.getUrl());
}
我想使用文档作为基本模板来创建与此类似的 PDF 文件:
https://jeffreyeverhart.com/2018/09/17/auto-fill-google-doc-from-google-form-submission/
我怎样才能用我的应用程序完成这个?这是一个自定义 html 表格,如您所见。
在此先感谢您的帮助!
- 您想使用 Google 文档的模板创建 PDF 文件。
- 您想要设置
form.name,form.email,form.comment
模板文档,然后,您想要将其导出为PDF文件。
如果我的理解是正确的,这个答案怎么样?请将此视为几个可能的答案之一。
修改点:
- 首先,请准备一个Google文档作为模板。
- 有模板Document时,首先复制模板Document,将需要替换的值替换为
form.name,form.email,form.comment
。然后,文档被转换为 PDF 数据。
用法:
在你运行脚本之前,请准备一个Google文件作为模板。
在这种情况下,{{name}}
、{{email}}
和 {{comment}}
分别替换为 form.name
、form.email
和 form.comment
。所以请在模板文档中包含 {{name}}
、{{email}}
和 {{comment}}
。
修改后的脚本:
当你的脚本修改后,变成如下。并且请将模板Google文档的文件ID设置为templateDocumentId
.
从:
var blob = Utilities.newBlob(body, MimeType.HTML, form.name).getAs(MimeType.PDF);
到:
var templateDocumentId = "###"; // Please set the file ID of the template Google Document
var docId = DriveApp.getFileById(templateDocumentId).makeCopy("temp").getId();
var doc = DocumentApp.openById(docId);
// Please modify as follows.
// var body = doc.getBody();
// body.replaceText("{{name}}", form.name).replaceText("{{email}}", form.email).replaceText("{{comment}}", form.comment);
doc.getBody().replaceText("{{name}}", form.name).replaceText("{{email}}", form.email).replaceText("{{comment}}", form.comment); // Modified
doc.saveAndClose();
var blob = doc.getBlob().setName(form.name);
DriveApp.getFileById(docId).setTrashed(true);
- 在此修改后的脚本中,复制的文档在最后一行被移至垃圾箱。所以请注意这一点。
注:
- 我不确定您要使用的模板文档。那么如果这个修改后的脚本不能用于你的模板Document,你能提供吗?
参考文献:
如果我误解了您的问题并且这不是您想要的方向,我深表歉意。
关于我的post:
关于下面描述的功能:
function submitData(form) {
var subject='New Feedback';
var body=Utilities.formatString('name: %s <br />Email: %s<br />Comment: %s', form.name,form.email,form.comment);
var folderId = "my-folder-ID"; // Please set the folder ID. // Added
var blob = Utilities.newBlob(body, MimeType.HTML, form.name).getAs(MimeType.PDF); // Added
var file = DriveApp.getFolderById(folderId).createFile(blob); // Added
var aliases = GmailApp.getAliases()
Logger.log(aliases); //returns the list of aliases you own
Logger.log(aliases[0]); //returns the alias located at position 0 of the aliases array
GmailApp.sendEmail('my-email@my-email.com','From an alias', 'A message from an alias!', {'from': aliases[0],subject: subject,htmlBody: body, attachments: [blob]}); // Modified
// return file.getUrl(); // Modified
return Utilities.formatString('name: %s <br />Email: %s<br />Comment: %s<br />PDF: %s', form.name,form.email,form.comment,file.getUrl());
}
我想使用文档作为基本模板来创建与此类似的 PDF 文件: https://jeffreyeverhart.com/2018/09/17/auto-fill-google-doc-from-google-form-submission/ 我怎样才能用我的应用程序完成这个?这是一个自定义 html 表格,如您所见。
在此先感谢您的帮助!
- 您想使用 Google 文档的模板创建 PDF 文件。
- 您想要设置
form.name,form.email,form.comment
模板文档,然后,您想要将其导出为PDF文件。
如果我的理解是正确的,这个答案怎么样?请将此视为几个可能的答案之一。
修改点:
- 首先,请准备一个Google文档作为模板。
- 有模板Document时,首先复制模板Document,将需要替换的值替换为
form.name,form.email,form.comment
。然后,文档被转换为 PDF 数据。
用法:
在你运行脚本之前,请准备一个Google文件作为模板。
在这种情况下,{{name}}
、{{email}}
和 {{comment}}
分别替换为 form.name
、form.email
和 form.comment
。所以请在模板文档中包含 {{name}}
、{{email}}
和 {{comment}}
。
修改后的脚本:
当你的脚本修改后,变成如下。并且请将模板Google文档的文件ID设置为templateDocumentId
.
var blob = Utilities.newBlob(body, MimeType.HTML, form.name).getAs(MimeType.PDF);
到:
var templateDocumentId = "###"; // Please set the file ID of the template Google Document
var docId = DriveApp.getFileById(templateDocumentId).makeCopy("temp").getId();
var doc = DocumentApp.openById(docId);
// Please modify as follows.
// var body = doc.getBody();
// body.replaceText("{{name}}", form.name).replaceText("{{email}}", form.email).replaceText("{{comment}}", form.comment);
doc.getBody().replaceText("{{name}}", form.name).replaceText("{{email}}", form.email).replaceText("{{comment}}", form.comment); // Modified
doc.saveAndClose();
var blob = doc.getBlob().setName(form.name);
DriveApp.getFileById(docId).setTrashed(true);
- 在此修改后的脚本中,复制的文档在最后一行被移至垃圾箱。所以请注意这一点。
注:
- 我不确定您要使用的模板文档。那么如果这个修改后的脚本不能用于你的模板Document,你能提供吗?
参考文献:
如果我误解了您的问题并且这不是您想要的方向,我深表歉意。