Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 使用应用程序脚本将HTML呈现到Google文档?_Google Apps Script_Google Docs_Html Rendering - Fatal编程技术网

Google apps script 使用应用程序脚本将HTML呈现到Google文档?

Google apps script 使用应用程序脚本将HTML呈现到Google文档?,google-apps-script,google-docs,html-rendering,Google Apps Script,Google Docs,Html Rendering,我们使用谷歌硬盘、文档等进行工作 问题背景:我们的一个部门需要打印数百封电子邮件存档,其中包括页面信息。我们目前有一个Google web应用程序,它接收gmail线程的内容,将消息保存为HTML blob,然后将其导出为PDF格式的文件夹。然后,我们的用户将这些PDF下载到硬盘,并进行大规模打印 问题本身:我们的用户在打印PDF时需要这些PDF上的页面信息。为了做到这一点,我们让应用程序先将电子邮件保存为谷歌文档,添加带有相关信息的页脚,然后再转换为PDF。然而,我们所尝试的并没有起作用,现在

我们使用谷歌硬盘、文档等进行工作

问题背景:我们的一个部门需要打印数百封电子邮件存档,其中包括页面信息。我们目前有一个Google web应用程序,它接收gmail线程的内容,将消息保存为HTML blob,然后将其导出为PDF格式的文件夹。然后,我们的用户将这些PDF下载到硬盘,并进行大规模打印

问题本身:我们的用户在打印PDF时需要这些PDF上的页面信息。为了做到这一点,我们让应用程序先将电子邮件保存为谷歌文档,添加带有相关信息的页脚,然后再转换为PDF。然而,我们所尝试的并没有起作用,现在我们只是往墙上扔东西,看看什么东西会粘在墙上

这是我们目前正在进行的工作(allMessages是一个包含电子邮件线程HTML内容的字符串):

我们尝试了以下方法(但失败):

我注意到我可以使用UI右键单击驱动器中的HTML文件并打开文档。它将创建一个新的Google文档并正确地呈现HTML。当我尝试编写脚本时(失败了)

它告诉我“文档丢失(可能被删除了?)”

下面将创建一个文档,但实际上并不呈现HTML

var myDoc = DocumentApp.create("docname");   
var myBody = myDoc.getBody();
myBody.setText(allMessages);
myDoc.saveAndClose();
现在我几乎没有主意了

我们试图寻找其他涉及Adobe的解决方案。不幸的是,Acrobat价格昂贵,并且以随机顺序打印文档(并且不允许命令行打印,因此我们可以编写脚本)。读者没有能力添加我们需要的页面信息。看来我们唯一的选择就是在谷歌硬盘中保存信息时,在这里插入这些信息


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

我有一个解决方案。 这行代码将把任何文件转换为适当的google文档。e、 g.如果是csv文件,它将转换为电子表格,如果是html,它将转换为谷歌文档

var newFileId = Drive.Files.copy({title: newFileName}, oldFileId, {convert: true}).id;
var newFileId = Drive.Files.insert({title: newFileName}, blob, {convert: true}).id;
或者,您可以将包含html的blob直接转换为文档

var newFileId = Drive.Files.copy({title: newFileName}, oldFileId, {convert: true}).id;
var newFileId = Drive.Files.insert({title: newFileName}, blob, {convert: true}).id;
要使其正常工作,首先必须打开高级驱动器API,如前所述


整个advanced drive API都有解释,但该文档是针对API的REST版本的,因此您必须通过“如何确定方法签名”和示例下的现场解释,找出如何将其转换为应用程序脚本。应用程序脚本编辑器中的自动完成功能也有助于实现这一点。

您真的需要html步骤吗?为什么不将文本添加到文档中,然后将其转换为pdf。我们需要保持电子邮件的完整性,包括任何内联图像。电子邮件本身也可以干净地转换为html。如果我们可以直接转到doc而不丢失任何东西,那么值得一试。在这个线程中,有人发布了一些代码来将文档转换为html。因此,您可以创建只包含页脚而不包含其他内容的文档,将它们转换为html,然后将它们与邮件中的html结合起来。或者你可以直接为页脚创建html代码。我不确定我是否遵循了。页脚的目的是让我们在页面底部有一个页码,而据我所知,HTML没有“页面”的概念。如果应用程序脚本可以直接修改PDF文件,我们将一切就绪。但它似乎只能够创建它们,以后不会更改它们。这与您的问题并不完全相关,但为什么您需要“我们的一个部门需要打印数百封电子邮件以存档,并包含页面信息。”?这似乎是一种环境浪费,更不用说当你需要实际查看和搜索这100封电子邮件时浪费时间了。将它们保存在电子邮件帐户中有什么问题?例如,如果您将它们全部转发到gmail,则所有电子邮件结构都保持不变。您可以随时搜索、检索和打印。你可以随时使用谷歌外卖获取所有电子邮件数据的可下载副本。这个解决方案只生成简单的文本。它排除了所有样式,如列表视图、粗体等。这种情况下有解决方案吗?
var newFileId = Drive.Files.insert({title: newFileName}, blob, {convert: true}).id;