如何在Apps Script中识别Google Slides矢量图的组成部件?
处理Google Slides矢量图形状ID的更优方法
方法1:用Google Apps Script批量导出所有形状ID
直接编写脚本遍历幻灯片中的所有形状,输出ID和对应属性,比手动查找高效得多。示例脚本如下:
function getShapeIDs() { const presentation = SlidesApp.getActivePresentation(); const slides = presentation.getSlides(); slides.forEach((slide, index) => { console.log(`幻灯片 ${index + 1} 的形状ID:`); const shapes = slide.getShapes(); shapes.forEach(shape => { console.log(`- 形状名称:${shape.getName()},ID:${shape.getObjectId()}`); }); }); }
运行脚本后,在查看 > 日志中即可查看所有形状的ID和名称,还可通过shape.getShapeType()判断类型,只筛选矢量图形状。
方法2:分组后批量管理矢量图形状
若矢量图由多个形状组成,先将它们组合为一个组(选中所有形状后右键选择“组合”),之后只需获取组ID,组内形状可通过组对象批量访问:
function getGroupedShapeIDs() { const presentation = SlidesApp.getActivePresentation(); const slide = presentation.getSelection().getCurrentPage().asSlide(); const groups = slide.getGroups(); groups.forEach(group => { console.log(`组ID:${group.getObjectId()}`); const groupShapes = group.getChildren(); groupShapes.forEach(child => { if(child.getPageElementType() === SlidesApp.PageElementType.SHAPE) { console.log(` 组内形状ID:${child.asShape().getObjectId()}`); } }); }); }
方法3:给关键形状命名后精准查找
选中单个矢量形状,在右侧面板排列 > 命名中设置易记名称,之后可通过名称直接查找ID:
function getShapeIDByName() { const presentation = SlidesApp.getActivePresentation(); const targetName = "我的矢量形状"; // 替换为自定义名称 const slides = presentation.getSlides(); slides.forEach(slide => { const shape = slide.getShapes().find(s => s.getName() === targetName); if(shape) { console.log(`找到目标形状,ID:${shape.getObjectId()}`); } }); }
这些方法均比手动在开发者工具中逐个查找高效,处理复杂矢量图时优势更明显。
内容的提问来源于stack exchange,提问作者Colin Wood
相关产品推荐
相关产品推荐

