将 gdoc 转换为图像
Convert a gdoc into image
有没有办法从 google 文档创建图像(例如 png)?
我的意思是图像,而不仅仅是 pdf。 GetAS 仅创建 pdf,但如果 contentType 设置为 image/png 或其他等效格式,则 returns 会出错。
我的(实际上是微不足道的)代码是
function convertFile() {
var SOURCE_TEMPLATE = "1HvqYidpUpihzo_HDAQ3zE5ScMVsHG9NNlwPkN80GHK0";
var TARGET_FOLDER = "1Eue-3tJpE8sBML0qo6Z25G0D_uuXZjHZ";
var source = DriveApp.getFileById(SOURCE_TEMPLATE);
var targetFolder = DriveApp.getFolderById(TARGET_FOLDER);
var target = source.makeCopy(source,targetFolder);
var newFile = DriveApp.createFile(target.getAs('image/png'));
}
当我运行这段代码时,出现以下错误(我的翻译):
不支持从 application/vnd.google-apps.document 到 image/png 的转换。
太
这个答案怎么样?
错误原因:
makeCopy()
returns 文件对象。 getAs()
不能用于此。这样,就出现了错误。
解决方法:
很遗憾,在当前阶段,Google 文档无法直接导出为 PNG 图片。因此需要考虑解决方法。 Google 文档可以转换为PDF。这个答案使用这个。作为解决方法,我建议使用外部 API,即 ConvertAPI。我认为使用外部API,脚本变得简单。 API的这个方法(PDF转PNGAPI)可以将PDF数据转PNG数据
例如,当您尝试此操作时,您也可以使用 "Free Package" 进行测试。当您尝试使用 "Free Package" 时,请在 "Free Package" 注册并取回您的密钥。
示例脚本:
在你运行这个脚本之前,请检索你的密钥并设置它。
var secretkey = "###"; // Please set your secret key.
var SOURCE_TEMPLATE = "1HvqYidpUpihzo_HDAQ3zE5ScMVsHG9NNlwPkN80GHK0";
var TARGET_FOLDER = "1Eue-3tJpE8sBML0qo6Z25G0D_uuXZjHZ";
var url = "https://v2.convertapi.com/convert/pdf/to/png?Secret=" + secretkey;
var options = {
method: "post",
payload: {File: DriveApp.getFileById(SOURCE_TEMPLATE).getBlob()},
}
var res = UrlFetchApp.fetch(url, options);
res = JSON.parse(res.getContentText());
res.Files.forEach(function(e) {
var blob = Utilities.newBlob(Utilities.base64Decode(e.FileData), "image/png", e.FileName);
DriveApp.getFolderById(TARGET_FOLDER).createFile(blob);
});
参考文献:
有没有办法从 google 文档创建图像(例如 png)? 我的意思是图像,而不仅仅是 pdf。 GetAS 仅创建 pdf,但如果 contentType 设置为 image/png 或其他等效格式,则 returns 会出错。 我的(实际上是微不足道的)代码是
function convertFile() {
var SOURCE_TEMPLATE = "1HvqYidpUpihzo_HDAQ3zE5ScMVsHG9NNlwPkN80GHK0";
var TARGET_FOLDER = "1Eue-3tJpE8sBML0qo6Z25G0D_uuXZjHZ";
var source = DriveApp.getFileById(SOURCE_TEMPLATE);
var targetFolder = DriveApp.getFolderById(TARGET_FOLDER);
var target = source.makeCopy(source,targetFolder);
var newFile = DriveApp.createFile(target.getAs('image/png'));
}
当我运行这段代码时,出现以下错误(我的翻译):
不支持从 application/vnd.google-apps.document 到 image/png 的转换。
太
这个答案怎么样?
错误原因:
makeCopy()
returns 文件对象。 getAs()
不能用于此。这样,就出现了错误。
解决方法:
很遗憾,在当前阶段,Google 文档无法直接导出为 PNG 图片。因此需要考虑解决方法。 Google 文档可以转换为PDF。这个答案使用这个。作为解决方法,我建议使用外部 API,即 ConvertAPI。我认为使用外部API,脚本变得简单。 API的这个方法(PDF转PNGAPI)可以将PDF数据转PNG数据
例如,当您尝试此操作时,您也可以使用 "Free Package" 进行测试。当您尝试使用 "Free Package" 时,请在 "Free Package" 注册并取回您的密钥。
示例脚本:
在你运行这个脚本之前,请检索你的密钥并设置它。
var secretkey = "###"; // Please set your secret key.
var SOURCE_TEMPLATE = "1HvqYidpUpihzo_HDAQ3zE5ScMVsHG9NNlwPkN80GHK0";
var TARGET_FOLDER = "1Eue-3tJpE8sBML0qo6Z25G0D_uuXZjHZ";
var url = "https://v2.convertapi.com/convert/pdf/to/png?Secret=" + secretkey;
var options = {
method: "post",
payload: {File: DriveApp.getFileById(SOURCE_TEMPLATE).getBlob()},
}
var res = UrlFetchApp.fetch(url, options);
res = JSON.parse(res.getContentText());
res.Files.forEach(function(e) {
var blob = Utilities.newBlob(Utilities.base64Decode(e.FileData), "image/png", e.FileName);
DriveApp.getFolderById(TARGET_FOLDER).createFile(blob);
});