如何通过Indesign脚本批量设置链接PDF的Object Layer Options图层显隐
InDesign批量修改置入PDF图层显隐脚本修复
原有代码问题
- 循环逻辑错误:页面遍历循环内每次都调用
myDocument.allGraphics[0],只会重复处理文档内第一个置入图形,无法覆盖每页的PDF文件 - 缺少异常校验:未判断处理对象是否为PDF类型、目标图层是否存在,匹配失败时直接触发运行报错
修复后可运行代码
var myDocument = app.activeDocument; var allGraphics = myDocument.allGraphics; // 要开启的目标图层名,可按需修改 var targetLayerName = "Die Copy"; for (var i = 0; i < allGraphics.length; i++) { var curGraphic = allGraphics[i]; // 仅处理置入的PDF类型文件 if (curGraphic.constructor.name === "PDF" || curGraphic.graphicLayerOptions.isValid) { var graphicLayers = curGraphic.graphicLayerOptions.graphicLayers; var targetLayer = graphicLayers.item(targetLayerName); // 确认目标图层存在再修改显隐状态 if (targetLayer.isValid) { targetLayer.currentVisibility = true; // 如果需要隐藏其他图层,可开启下方逻辑: // for (var j = 0; j < graphicLayers.length; j++) { // graphicLayers[j].currentVisibility = (graphicLayers[j].name === targetLayerName); // } } } }
额外说明
- 如果需要调整多个图层的显隐状态,只需重复
graphicLayers.item("图层名").currentVisibility = 布尔值的逻辑即可,true为显示,false为隐藏 - 代码注释中附带了「仅保留目标图层显示、隐藏其他所有图层」的可选逻辑,按需开启使用即可
内容的提问来源于stack exchange,提问作者Spark85
相关产品推荐
相关产品推荐

