【发布时间】:2018-07-18 08:40:40
【问题描述】:
我有一个具有简单逻辑的自定义 Google 脚本:它从电子表格中查找部分并构建内存中的 HTML 字符串,然后我调用以下代码来生成 PDF。
var blob = Utilities.newBlob(html_body, 'text/html').getAs('application/pdf').setName(pdf_name);
var newDoc = DriveApp.createFile(blob);
var pdf_url = newDoc.getUrl();
令人惊讶的是对于相同的内容,它有时会起作用并随机返回错误:
从 text/html 到 application/pdf 的转换失败。
我发现这种情况最常发生在较大的文件中,所以我可能会遇到一些配额限制。
但根据https://developers.google.com/apps-script/guides/services/quotas#current_limitations,任何限制都应该引发相关信息。
https://developers.google.com/apps-script/reference/base/blob#getAs(String) 周围的文档也没有说明任何内容。
有什么想法吗?
谢谢!
【问题讨论】:
-
在启用 Drive v2“高级服务”并使用它创建文档后,您是否得到相同的行为,而不是
DriveApp? -
感谢 tehhowch 的建议!我启用了 Drive v2 并根据developers.google.com/apps-script/advanced/drive 更改了代码,从而产生了以下代码。可悲的是,问题仍然存在。代码的第一行会生成错误。 var blob = Utilities.newBlob(html_body, 'text/html').getAs('application/pdf').setName(fileName); var file = { title: fileName, mimeType: 'application/pdf', }; newDoc = Drive.Files.insert(file, blob); var pdf_url = newDoc.id;
-
如上所述,遗憾的是它并没有解决问题。
-
您可以/应该在 OP 中提供导致此问题的大小示例,以及文件创建失败频率的统计信息。测试有效负载的相关链接可以帮助其他人重现您的确切问题。
-
就像更新一样,我也尝试过使用 GSuite Business 的早期访问功能:灵活的配额和延长的脚本执行时间,但这也无济于事 - 请参阅 productforums.google.com/forum/#!topic/apps/…
标签: google-apps-script html-to-pdf