【问题标题】:Google Script Replace Image in gDraw File谷歌脚本替换 gDraw 文件中的图像
【发布时间】:2017-01-05 05:43:22
【问题描述】:

所以我正在尝试编写一个 Google 脚本,该脚本将从 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 文件中的图像。

提前感谢您的帮助!

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      感谢您的指导。这是我通过调整我发现的一些不同代码得到的地方。我目前有一张幻灯片,其中一张图片永远不会改变,2 个形状代表其他 2 张图片的去向。我构建了幻灯片的新副本,然后从这篇帖子 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'); 
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-01
        • 2022-01-03
        • 2020-05-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多