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

如何使用Python调用执行Illustrator的批量自定义Action动作

Python调用Illustrator自定义动作的实现方案

前置依赖安装

先安装pywin32库用于调用Windows COM接口:
pip install pywin32

核心调用逻辑

你之前尝试的直接将动作名作为应用对象属性调用的写法是错误的,Illustrator没有把动作直接挂载为应用对象的属性,需要通过专用的DoScript方法执行预设动作。
调用时需要传入两个参数:自定义动作名称、动作所属的动作集名称,两个参数都要和Illustrator动作面板里的命名完全一致(大小写、空格、特殊符号都不能有偏差)。

完整批量处理示例代码

import win32com.client
import os
import time

# 初始化Illustrator应用对象
ai_app = win32com.client.Dispatch("Illustrator.Application")
# 配置参数
action_name = "Export" # 你的自定义动作名称
action_set = "我的动作集" # 替换为你自己的动作所属的动作集名称,可在Illustrator动作面板查看动作上层的文件夹名
source_folder = r"C:\你的图片存储文件夹路径" # 替换为Pillow处理后输出图片的文件夹路径

# 遍历文件夹内所有图片批量处理
for filename in os.listdir(source_folder):
    file_path = os.path.join(source_folder, filename)
    # 跳过非文件项,可根据你的图片格式补充后缀过滤规则
    if not os.path.isfile(file_path) or not filename.lower().endswith(('.png', '.jpg', '.jpeg')):
        continue
    try:
        # 打开文件
        ai_doc = ai_app.Open(file_path)
        # 等待文件加载完成,避免报错
        time.sleep(0.5)
        # 执行自定义动作
        ai_app.DoScript(action_name, action_set)
        # 如果你的Export动作里已经包含保存、关闭文档的逻辑,可省略下面两行
        ai_doc.Save()
        ai_doc.Close()
    except Exception as e:
        print(f"处理文件{filename}失败:{str(e)}")
        # 出错时关闭当前打开的异常文档
        try:
            ai_doc.Close(2) # 2代表不保存关闭
        except:
            pass

常见问题排查

  • 若调用提示动作不存在,优先核对动作名称、动作集名称的拼写,包括前后隐藏的空格
  • 处理大体积图片时可适当延长sleep的等待时长,等待Illustrator资源加载完成
  • 建议先测试单文件调用正常后,再跑全量批量处理逻辑

内容的提问来源于stack exchange,提问作者Antonio Mcfarren

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 19:30:03