Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.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 将gdoc转换为图像_Google Apps Script_Google Drive Api_File Conversion_Convertapi - Fatal编程技术网

Google apps script 将gdoc转换为图像

Google apps script 将gdoc转换为图像,google-apps-script,google-drive-api,file-conversion,convertapi,Google Apps Script,Google Drive Api,File Conversion,Convertapi,有没有办法从谷歌文档中创建图像(例如png)? 我指的是图像,而不仅仅是pdf。GetAS仅创建pdf,但如果contentType设置为image/png或其他等效格式,则返回错误。 我的(实际上微不足道的)代码是 当我运行此代码时,出现以下错误(我的翻译): 不支持从application/vnd.google-apps.document到image/png的转换 这个答案怎么样 错误原因: makeCopy()返回文件对象getAs()不能用于此操作。这样,就会发生错误 解决方法: 不幸的

有没有办法从谷歌文档中创建图像(例如png)? 我指的是图像,而不仅仅是pdf。GetAS仅创建pdf,但如果contentType设置为image/png或其他等效格式,则返回错误。 我的(实际上微不足道的)代码是

当我运行此代码时,出现以下错误(我的翻译):

不支持从application/vnd.google-apps.document到image/png的转换

这个答案怎么样

错误原因:
makeCopy()
返回文件对象<代码>getAs()不能用于此操作。这样,就会发生错误

解决方法: 不幸的是,在当前阶段,Google文档不能直接导出为PNG图像。因此,需要考虑变通办法。谷歌文档可以转换为PDF格式。这个答案是这样的。作为一种解决方法,我建议使用一个外部API,它是。我认为使用外部API,脚本会变得简单。这是一种将API从PDF数据转换为PNG数据的方法(PDF到PNG API)

例如,当您尝试此功能时,您还可以使用“免费软件包”测试此功能。当您尝试使用“免费软件包”时,请在“免费软件包”注册并检索您的密钥

示例脚本: 在运行此脚本之前,请检索密钥并进行设置

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);
});
参考资料:

您希望将每个页面作为PNG数据检索。我的理解正确吗?顺便问一下,为了正确处理您的情况,您能提供您当前的脚本吗?是的,这是正确的。我的脚本很简单:我刚刚验证了'newFile=DriveApp.createFile(target.getAs('application/pdf');'创建pdf,但“newFile=DriveApp.createFile(target.getAs('image/png'));”返回错误。感谢您的回复。我能问一下你的答复吗?1.什么是
目标
?2.您能否提供有关
返回错误的详细信息。
?3.您可以通过更新在问题中添加脚本吗?我认为这将帮助用户思考您的问题。如果您能合作解决您的问题,我很高兴。谢谢您的帮助。我是stackoverflow的新手,如果我问的问题不正确,我很抱歉。现在我已经在我的问题中插入了代码和错误,感谢您回复和更新您的问题。我提出了一个变通办法作为答案。你能确认一下吗?如果这个解决方法不是您想要的,我很抱歉。我只想补充一点,ConvertAPI有另一个缩略图生成器API,可以将第一页提取并转换为png图像,它的工作速度比PDF转换为png要快一些。restapi端点应该感谢它的完美工作,有人知道其他具有相同用途的API吗?
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);
});