You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过Google Script为Google Doc添加左上角带文字环绕的图片

如何用Google Apps Script在Google Docs左上角添加带文本环绕的图片

针对你的需求,我帮你调整了现有脚本,既能实现从Google Drive插入指定logo到文档左上角,还能设置文本环绕效果,同时修正了原脚本里的小问题。

先看修改后的完整可运行代码:

function addLogoAndCreateDoc() {
  // 文档内容配置
  const t1 = 'Center for Success';
  const t2 = 'Foundational Hall';
  const t3 = 'Instruction Sheet for Testing Requirements';
  const filename = 'fileTest';
  
  // 样式定义
  const boldRight = {
    [DocumentApp.Attribute.BOLD]: true,
    [DocumentApp.Attribute.HORIZONTAL_ALIGNMENT]: DocumentApp.HorizontalAlignment.RIGHT
  };
  const boldCenterUnderline = {
    [DocumentApp.Attribute.BOLD]: true,
    [DocumentApp.Attribute.UNDERLINE]: true,
    [DocumentApp.Attribute.HORIZONTAL_ALIGNMENT]: DocumentApp.HorizontalAlignment.CENTER
  };
  
  // 创建文档并获取正文
  const doc = DocumentApp.create(filename);
  const body = doc.getBody();
  
  // --- 核心:插入并配置左上角logo ---
  // 替换成你实际的logo.png的Drive文件ID
  const logoFileId = "2PJGK5C64HLKKoQIv52jGhUjjdiXU34Mp";
  try {
    const logoBlob = DriveApp.getFileById(logoFileId).getBlob();
    const image = body.appendImage(logoBlob);
    
    // 设置图片靠左对齐(固定到左上角区域)
    image.setAlignment(DocumentApp.HorizontalAlignment.LEFT);
    
    // 关键:设置文本环绕样式,避免打乱布局
    const wrapStyle = {};
    wrapStyle[DocumentApp.Attribute.WRAP_STYLE] = DocumentApp.WrapStyle.SURROUND;
    image.setAttributes(wrapStyle);
    
    // 可选:根据需求调整图片尺寸
    image.setWidth(100);
    image.setHeight(100);
  } catch (e) {
    Logger.log("插入图片出错:" + e.message);
    body.appendParagraph("无法插入logo,请检查文件ID是否正确或权限是否足够");
  }
  
  // 添加原有文本内容(修正了原脚本中space变量未定义的问题)
  body.appendParagraph(t1).setAttributes(boldRight);
  body.appendParagraph(t2).setAttributes(boldRight);
  body.appendParagraph(""); // 用空段落替代未定义的space
  body.appendParagraph(t3).setAttributes(boldCenterUnderline);
  
  doc.saveAndClose();
}

关键修改与说明

  1. 修复原脚本错误:原脚本里的space变量未定义,我换成了body.appendParagraph("")来生成空行,避免脚本报错。
  2. 图片权限与ID:运行脚本时会弹出授权请求,需要允许脚本访问你的Google Drive;另外要确保logoFileId是正确的——你可以从Drive文件的URL里提取,比如https://drive.google.com/file/d/[FILE_ID]/viewd/后面的部分就是文件ID。
  3. 文本环绕控制:通过DocumentApp.WrapStyle.SURROUND实现文本环绕图片的效果,还有其他可选样式:
    • DocumentApp.WrapStyle.INLINE:行内嵌入(会打乱原有文本布局,不推荐)
    • DocumentApp.WrapStyle.BREAK_LEFT:图片右侧强制换行
    • DocumentApp.WrapStyle.BREAK_RIGHT:图片左侧强制换行
  4. 图片定位setAlignment(DocumentApp.HorizontalAlignment.LEFT)让图片靠左对齐,结合环绕样式,就能实现左上角的浮动效果,文本会自动绕开图片。
  5. 错误处理:添加了try-catch块,避免因为文件ID错误或权限问题导致整个脚本崩溃,同时会在日志里记录错误信息,方便排查。

额外优化建议

  • 如果需要更精确的位置控制(比如调整图片到页边距的距离),可以用image.setLeftOffset()image.setTopOffset()设置偏移量。
  • 可以根据文档布局调整图片的宽高,避免图片过大挤压文本空间。

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

火山引擎 最新活动