You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 03:47:52