2

所以我有一个 HTML 文件,我用它来发送电子邮件,但在某些情况下,我希望它只是使用该文件来创建相同模板的 PDF。

我已经让它在大多数情况下运行——它创建文件、运行评估并获取内容,但它实际上并没有呈现 html。它只是将所有 html 符号保留在适当的位置。

例如,它输出一个 pdf,但内容如下:

Dear Martin, <br />

代替:

亲爱的马丁

如何确保它呈现 HTML,以便 PDF 布局正确,并且没有在文本中注明 html 代码?

这是代码:

var docName = "test";
var htmlBody = HtmlService.createHtmlOutput(template.evaluate().getContent()).getContent()
var doc = DocumentApp.create(docName);
  doc.appendParagraph(htmlBody);
doc.saveAndClose();
DocsList.createFile(doc.getAs('application/pdf')).rename(docName);
4

2 回答 2

6

您可以将现有的 HTML 用作 blob,并将其转换为 PDF,如下所示:

var htmlBody = HtmlService.createHtmlOutputFromFile('my_file_within_script_project.html').getContent();
var blob = Utilities.newBlob(htmlBody, 'text/html').getAs('application/pdf').setName('my_output_in_drive.pdf');
DriveApp.createFile(blob);
于 2013-09-24T14:17:11.280 回答
1

当您想从模板创建 PDF 时,最好的选择是直接使用 Google Docs,这样不会丢失格式并避免您面临的问题。

为什么不直接在 Google 文档中创建模板。有一些占位符,例如{name}代替实际名称。template.evaluate()您可以在文档中进行查找和替换,而不是使用。

于 2013-09-24T00:40:33.570 回答