Google脚本替换gDraw文件中的图像

时间:2017-01-02 17:23:21

标签: javascript google-apps-script google-drive-api

所以我正在尝试编写一个Google脚本,该脚本将从谷歌驱动器上的3个不同图像文件创建图像文件。我决定使用的方法是在Drive中创建模板或基本gDraw文件,然后修改该文件并将其导出为jpeg。到目前为止,我已经能够使用此帖1)Is there a Google Appscript command that can convert a .gDraw to a .jpg? 2)Can a trigger be set to perform this conversion on .gdraw file edit?中的代码将我的gDraw文件导出为图像。

function gDrawTO_jpeg(){
  var gDrawFile = Drive.Files.get('1P2qYTyeI9RovsI_qwiMEtlBeTJw-exjckQeYLL_NA7w'); 
  var url = gDrawFile.exportLinks['image/jpeg'];
  var token = ScriptApp.getOAuthToken();
  var response = UrlFetchApp.fetch(url, {
      headers: {
                'Authorization': 'Bearer ' +  token
               }
   });
  var jpeg = response.getBlob();
  // save drawing as jpeg file to Drive, or do whatever you need to with the blob
  DriveApp.createFile(jpeg);
}

我所坚持的是试图弄清楚如何替换gDraw文件中的图像。

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

我从来没有遇到过Google Draw的API,这意味着无法通过脚本联系进行编辑。然而,就在一个月前,Google推出了可以远程添加图片的Slide API。不知道这是否有帮助,然后可以嵌入幻灯片。

答案 1 :(得分:0)

感谢您的指导。这是我通过调整我发现的一些不同代码得到的地方。我目前有一张幻灯片,其中一张图片永远不会改变,另外两张形状代表其他两张图片的位置。我构建了幻灯片的新副本,然后从此帖子How to download Google Slides as images?调用downloadPresentation(id)以将新幻灯片导出为PNG!

function slides_template() {


  var IMG_FILE = 'IMG_4096.JPG'      
  var TMPLFILE = 'Grid Template' 
  var SZIMG_FILE = 'onesize.jpeg'  


  SLIDES.setTokenService(function(){returnScriptApp.getOAuthToken()});


  Logger.log('** Copying template **');
  var DECK_ID = DriveApp.getFilesByName(TMPLFILE).next().makeCopy().getId();


  Logger.log('** Searching for files');
  var rsp = DriveApp.getFilesByName(IMG_FILE).next();
  var szrsp = DriveApp.getFilesByName(SZIMG_FILE).next();

  Logger.log(Utilities.formatString(' - Found image %s', rsp.getId()));

  var img_url = rsp.getDownloadUrl()+"&access_token="+ScriptApp.getOAuthToken();
  var szimg_url = szrsp.getDownloadUrl()+"&access_token="+ScriptApp.getOAuthToken();


  Logger.log('Inserting Images');
var reqs = [    

  {"replaceAllShapesWithImage": {

  "imageUrl": img_url,
  "replaceMethod": "CENTER_CROP",
  "containsText": {
           "text": "Main_Image",
           "matchCase": "True",
               }
  },},

    {"replaceAllShapesWithImage": {

  "imageUrl": szimg_url,
  "replaceMethod": "CENTER_CROP",
  "containsText": {
           "text": "Size_Image",
           "matchCase": "True",
               }
  },},

  ];


  SLIDES.presentationsBatchUpdate(DECK_ID, {'requests': reqs});

  downloadPresentation(DECK_ID)

  Logger.log('DONE'); 
}