使用应用脚本将HTML呈现给Google文档?

A K*_*rby 5 google-apps-script

我们使用Google云端硬盘,文档等工作

问题背景:我们的一个部门需要打印数百封电子邮件,包含页面信息.我们目前有一个谷歌网络应用程序,它采用gmail线程的内容,将消息保存为HTML blob,然后将这些文件作为PDF导出到文件夹.然后,我们的用户将这些PDF下载到硬盘驱动器,并进行批量打印.

问题本身:我们的用户在打印时需要有关于这些PDF的页面信息.为此,我们首先让应用将电子邮件另存为Google文档,添加包含相关信息的页脚,然后再转换为PDF.然而,我们正在尝试的是不起作用,现在我们只是在墙上扔东西看看会坚持什么.

这是我们目前正在使用的(allMessages是一个包含电子邮件线程的HTML内容的String):

//save the HTML content to a PDF file.
var htmlBodyFile = myFolder.createFile("fileName.html", allMessages, "text/html");
var pdfBlob = htmlBodyFile.getAs("application/pdf");
Run Code Online (Sandbox Code Playgroud)

我们试过这个(并且失败了):

//save the HTML content to a Google Doc. getAs() needs the MimeType.

var htmlBodyFile = myFolder.createFile("fileName.html", allMessages, "text/html");
var myDoc = htmlBodyFile.getAs("GOOGLE_DOCS");
// application/GOOGLE_DOCS, and application/vnd.google-apps.document don't work either
Run Code Online (Sandbox Code Playgroud)

我注意到我可以使用UI右键单击Drive中的HTML文件并使用Docs打开.它将创建一个新的Google Doc并正确呈现HTML.当我试图编写脚本(并失败)时,

var htmlBodyFile = myFolder.createFile("filename.html", allMessages, "text/html");
var myDoc = DocumentApp.openById(htmlBodyFile.getId());
Run Code Online (Sandbox Code Playgroud)

它给我"文件丢失(也许它已被删除?)"

以下将创建一个doc,但实际上并不呈现HTML.

var myDoc = DocumentApp.create("docname");   
var myBody = myDoc.getBody();
myBody.setText(allMessages);
myDoc.saveAndClose();
Run Code Online (Sandbox Code Playgroud)

现在我的想法很糟糕.

我们尝试了解涉及Adobe的其他解决方案.不幸的是,Acrobat很昂贵并且以随机顺序打印文档(并且不允许命令行打印,所以我们可以编写脚本).而Reader无法添加我们需要的页面信息.因此,在Google云端硬盘中保存时,我们唯一的选择就是在此处插入该信息.

有谁知道如何使用应用程序脚本将HTML呈现给Google文档?

Spi*_*Pig 5

我有一个解决方案.这行代码会将任何文件转换为适当的google文档.例如,如果它是一个csv文件,它将变成一个电子表格,如果它是HTML,它将被转换为谷歌文件.

var newFileId = Drive.Files.copy({title: newFileName}, oldFileId, {convert: true}).id;
Run Code Online (Sandbox Code Playgroud)

或者,您可以将包含html的blob直接转换为文档.

var newFileId = Drive.Files.insert({title: newFileName}, blob, {convert: true}).id;
Run Code Online (Sandbox Code Playgroud)

对于这个工作,你首先必须打开高级驱动API作为解释这里

这里解释整个高级驱动器API ,但该文档适用于API的REST版本,因此您必须以某种方式弄清楚如何使用网站上的"如何确定方法签名"和示例下的说明将其转换为应用程序脚本在这里.应用程序脚本编辑器中的自动完成功能也有助于此.