You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Apps Script将谷歌图表API二维码插入Google文档?

解决方案:通过Google图表API二维码URL插入Google文档

核心修改说明

  • 移除依赖Google Drive文件ID的图片获取逻辑,直接通过UrlFetchApp.fetch()获取在线二维码的Blob对象
  • 保留原有的占位符替换、样式设置、PDF生成及文件管理逻辑

修改后的完整代码

function cetakJurnalQR() {

  var fileMasterId  = '1Qvj2iA-5iT3YRAkrkkB7lRNOr47pwS5rLQ5G8XXXXXX'
  var folderID      = "1qQZSrTugL_ZkyZ-ceGo8b6RqY2XXXXXX"

  // 定义谷歌图表API生成的二维码URL
  var qrCodeUrl = "https://chart.googleapis.com/chart?chs=100x100&cht=qr&chld=2&chl=sampleQRCode";
  // 通过UrlFetchApp获取在线图片的Blob
  var image = UrlFetchApp.fetch(qrCodeUrl).getBlob();

  var copyId      = DriveApp.getFileById(fileMasterId).makeCopy('NEW JOURNAL'+'_2023_').getId();
  var copyDoc     = DocumentApp.openById(copyId);
  var copyBody    = copyDoc.getActiveSection();

 // 插入二维码
  var position    = copyBody.findText('<QRCode>').getElement();
       if (!position) {
      throw new Error("未找到'<QRCode>'占位符。");
      }    

  var para          = position.getParent().asParagraph();
  var insertedImage = para.appendInlineImage(image).setHeight(100).setWidth(100);

    para.getParent().setVerticalAlignment(DocumentApp.VerticalAlignment.CENTER);  

  var styles = { [DocumentApp.Attribute.HORIZONTAL_ALIGNMENT]: DocumentApp.HorizontalAlignment.CENTER };
  
     insertedImage.getParent().setAttributes(styles)
     para.removeChild(position);
      copyDoc.saveAndClose();

 // 通过getAs Blob转换将临时文档转为PDF

     docblob = DriveApp.getFileById(copyId).getAs("application/pdf"); 
     docblob.setName("NEW GENERATE .pdf");

      var file   = DriveApp.createFile(docblob);

   // 新增部分

  var newFileId = file.getId();   
  var newFile   = DriveApp.getFileById(newFileId);    
  var docFolder = DriveApp.getFolderById(folderID)

   newFile.moveTo(docFolder);

   DriveApp.getFileById(copyId).setTrashed(true);

}

关键代码解释

原来的代码通过DriveApp.getFileById(fotoID).getBlob()从Google Drive获取图片,现在替换为:

  1. 直接定义二维码的生成URL(可根据需求修改chl参数的值来改变二维码内容)
  2. 使用UrlFetchApp.fetch(qrCodeUrl).getBlob()请求该URL并获取图片的Blob对象,后续插入文档的逻辑完全复用原有代码即可

内容的提问来源于stack exchange,提问作者PSAB Plalangan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 22:05:59