如何在Illustrator脚本中添加PNG导出及文档关闭功能?
解决方案:Illustrator脚本整合图层隐藏、PNG批量导出与文档关闭
以下是整合所有需求的完整脚本,包含图层隐藏、文档保存、按画板尺寸导出PNG及批量关闭文档的功能:
#target illustrator function processDocuments() { // 倒序遍历文档,避免关闭时索引错乱 for (var i = app.documents.length - 1; i >= 0; i--) { var doc = app.documents[i]; doc.activate(); // 隐藏指定图层 hideTargetLayers(doc); // 保存当前文档 doc.save(); // 按画板尺寸导出PNG exportAsPNG(doc); // 关闭文档(已保存,无需再次保存) doc.close(SaveOptions.DONOTSAVECHANGES); } } function hideTargetLayers(doc) { for (var j = 0; j < doc.layers.length; j++) { var layer = doc.layers[j]; // 精准匹配并隐藏"text"和"text2"图层 if (layer.name === "text" || layer.name === "text2") { layer.visible = false; } } } function exportAsPNG(doc) { // 配置PNG导出参数 var exportOpts = new ExportOptionsPNG24(); exportOpts.artBoardClipping = true; // 按当前画板尺寸裁剪导出 exportOpts.transparency = true; // 保留透明背景(可按需修改为false) exportOpts.antiAliasing = true; // 开启抗锯齿,提升导出画质 exportOpts.horizontalScale = 100; // 100%原比例导出 exportOpts.verticalScale = 100; // 自动生成导出路径:原文档目录 + 原名替换为PNG后缀 var exportPath = doc.fullName.parent.fsName + "/" + doc.name.replace(/\.[^\.]+$/, "") + ".png"; var exportFile = new File(exportPath); // 执行导出 doc.exportFile(exportFile, ExportType.PNG24, exportOpts); } // 启动处理流程 processDocuments();
关键功能说明
- 图层隐藏逻辑优化:合并原脚本的重复判断,精准匹配
text和text2图层并设置隐藏,代码更简洁高效。 - 倒序遍历文档:从最后一个文档开始处理,避免因关闭文档导致后续文档索引偏移的问题。
- PNG导出配置:
artBoardClipping: true确保导出内容严格适配画板尺寸;- 导出路径自动沿用原文档所在目录,文件名保持原名并替换为
.png,无需手动指定路径; - 可根据需求调整
transparency(透明背景)、antiAliasing(抗锯齿)等参数。
- 文档关闭逻辑:由于已提前执行
doc.save(),关闭时使用SaveOptions.DONOTSAVECHANGES避免重复保存操作。
内容的提问来源于stack exchange,提问作者user20326191
相关产品推荐
相关产品推荐

