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

如何通过编程将Google Slides幻灯片缩略图作为链接对象同步至Google Docs?

批量导入Google幻灯片到Google文档并保留同步链接功能

我太懂这种痛点了——手动给几十上百张幻灯片做带同步链接的粘贴,简直是重复劳动的噩梦。你之前的脚本用缩略图加跳转链接的方式,本质上只是给静态图片加了个跳转,和手动选「Link to presentation」的联动效果完全不是一回事。

问题根源

手动粘贴时选择「Link to presentation」,其实是在Google Docs里插入了一个关联到原幻灯片的嵌入式对象,而非普通图片。这种对象和原演示文稿绑定,能感知到原幻灯片的更新,所以会出现「Refresh」按钮。而你之前的脚本只是下载了幻灯片的静态截图,自然没法同步。

解决方案:用Docs API插入原生联动对象

要实现批量的同步链接效果,得用Google Docs API的insertEmbeddedObject接口,直接插入关联到原幻灯片的对象。下面是完整的可运行脚本:

function exportLinkedSlidesToDoc(presentationId) {
  const presentation = SlidesApp.openById(presentationId);
  const slides = presentation.getSlides();
  // 创建新文档,也可以改成打开已有文档(把create换成openById)
  const doc = DocumentApp.create('Synced Slides Doc');
  const docId = doc.getId();
  
  slides.forEach((slide, index) => {
    const slideObjectId = slide.getObjectId();
    // 调用Docs API插入关联幻灯片对象
    Docs.Documents.batchUpdate({
      requests: [
        {
          insertEmbeddedObject: {
            location: {
              index: index * 2 // 给每张幻灯片留位置,避免挤在一起
            },
            embeddedObject: {
              linkedContentReference: {
                slideObjectId: slideObjectId,
                presentationId: presentationId,
                thumbnailProperties: {
                  thumbnailSize: 'SMALL' // 可以改成MEDIUM/LARGE
                }
              }
            }
          }
        },
        // 插入换行分隔幻灯片
        {
          insertText: {
            location: {
              index: (index * 2) + 1
            },
            text: '\n'
          }
        }
      ]
    }, docId);
    
    // 加个小延迟,防止API调用太频繁被限制
    Utilities.sleep(500);
  });
  
  doc.saveAndClose();
  DocumentApp.openById(docId);
}

// 测试用函数,直接在当前幻灯片运行即可
function testLinkedSlidesExport() {
  const activePresId = SlidesApp.getActivePresentation().getId();
  exportLinkedSlidesToDoc(activePresId);
}

关键步骤说明

  • 启用Docs API:在Apps Script编辑器左侧菜单点「服务」→「添加服务」,找到「Google Docs API」并添加,否则脚本会报错。
  • 权限授权:第一次运行脚本时,会提示需要授权访问你的幻灯片和文档,按照流程授权即可。
  • 对象位置调整:脚本里用index * 2来设置插入位置,是为了给每张幻灯片后加个换行,避免所有对象挤在一起,你可以根据需要调整这个逻辑。
  • 缩略图大小thumbnailSize可以改成MEDIUM或者LARGE,对应不同的显示尺寸。

效果对比

这个脚本插入的对象和手动粘贴选「Link to presentation」的效果完全一致:

  • 原幻灯片更新后,文档里的对象会出现「Refresh」按钮,点击就能同步最新内容;
  • 右键对象可以选「Open source」直接跳转到原幻灯片编辑;
  • 完全保留了联动功能,不再是静态图片。

内容的提问来源于stack exchange,提问作者ansh-g

火山引擎 最新活动