能否通过Apps Script生成Google Slides中指定对象(如形状)的缩略图?
关于Google Slides API获取单个对象缩略图的问题
Google Slides API的getThumbnail接口目前不支持直接获取幻灯片内单个对象(比如形状)的缩略图,只能生成整个幻灯片的缩略图。不过可以通过以下两种替代方案实现需求:
方案一:裁剪整张幻灯片缩略图
- 调用
presentations.get接口获取目标幻灯片及对象的详细信息:
从响应中找到对应GET https://slides.googleapis.com/v1/presentations/{presentationId}?fields=pages(pageObjectId,objects(objectId,shape,boundingBox))pageObjectId下目标对象的boundingBox数据,里面包含对象的width、height、left、top(单位为EMU,1 EMU = 1/914400英寸)。 - 调用
getThumbnail接口获取整张幻灯片的缩略图,拿到缩略图的实际像素尺寸。 - 转换单位并计算裁剪区域:将EMU值转换成像素(结合幻灯片的原始尺寸和缩略图的缩放比例),然后对整张缩略图进行裁剪,得到单个对象的缩略图。
方案二:临时幻灯片中转
- 使用
presentations.batchUpdate接口执行三个操作:- 创建一张空白幻灯片;
- 将目标对象从原幻灯片复制到新创建的空白幻灯片;
- (可选)调整新幻灯片的尺寸匹配对象大小。
示例请求体大致结构:
{ "requests": [ { "createSlide": { "objectId": "temp-slide-id", "slideLayoutReference": { "predefinedLayout": "BLANK" } } }, { "duplicateObject": { "objectId": "target-object-id", "destinationObjectId": "temp-slide-id" } } ] } - 调用
getThumbnail接口获取临时幻灯片的缩略图,这就等同于目标对象的缩略图。 - 再次调用
presentations.batchUpdate接口删除临时幻灯片,清理资源。
内容的提问来源于stack exchange,提问作者MOS
相关产品推荐
相关产品推荐

