illustrator-jsxlisted
Install: claude install-skill chendeninghan-pixel/illustrator-jsx
# Illustrator JSX 自动化
Agent 无法直接操作 Illustrator 的图形界面,但 Illustrator 内置 ExtendScript (.jsx) 引擎——写好脚本让用户运行(或经授权后远程执行),就能自动完成排版和绘制。这条路径对**重复性、规则明确的版面**价值最大:几十张卡牌、整本物料、成批画板,手动排要几个小时,脚本几秒画完。
## 工作流程
1. **明确版面需求**:尺寸(mm 或 pt)、内容、文案、配色、字体。信息不全时先问,不要猜着写。画板尺寸以 pt 为单位,mm × 2.83465 换算。
2. **写脚本**:ES3 语法(`var`、普通函数、字符串拼接——ExtendScript 引擎停留在 2009 年,`let/const`、箭头函数、模板字符串会直接报错)。从 `references/extendscript-cheatsheet.md` 复制坐标换算、打组、光学居中等工具函数;`assets/` 里有三个实机验证过的完整示例,照着骨架写比从零写快得多,其中 `example-gallery-map.jsx` 结构最完整。
3. **语法校验**:Node 不认 .jsx 扩展名,复制成 .js 再查:
`cp script.jsx /tmp/check.js && node --check /tmp/check.js`
这只查语法不查逻辑,真正的验证在第 5 步。
4. **运行**,两种方式:
- **用户手动(首选)**:Illustrator 菜单 文件 → 脚本 → 其他脚本(⇧⌘F12)。脚本写成自包含 IIFE,开头注释写清用法。手动运行不需要任何系统授权,永远可用。
- **远程执行(需授权)**:`osascript -e 'tell application "Adobe Illustrator" to do javascript file "/abs/path.jsx"'`,Proma 的 bash 直接运行即可。首次运行若报 -10004 权限错误,引导用户去 系统设置 → 隐私与安全性 → 自动化,勾选 Proma(或运行 Agent 的应用)对 Adobe Illustrator 的授权。授权失败就退回手动方式,不要反复重试。
5. **验证闭环(关键,不要跳过)**:语法正确 ≠ 排版正确。层级翻转、中文视觉偏上、文字溢出画板这类问题只有看图才能发现。脚本里加一段导出代码把新画板存成 PNG(导出代码见 cheatsheet「导出」节),运行后用 Read 工具读取 PNG 自查:文字有没有被背景遮住、中文是否偏上、内容是否溢出。发现问题就改脚本重跑(提醒用户先删掉上次生成的画板和图层,否则越堆越多)。
## 脚本设计要点
- **不碰用户现有内容**:所有绘制放新建画板(现有画板右侧 `maxRight+100`)+ 新建图层,最后整体打组。用户拿到后可以整组拖走微调,这是"脚本生成"和"人工收尾"的交接方式。
- **坐标系是最大的坑**:Illustrator 全局坐标 y 轴向上,`rectangle(top, left, w, h)` 前两个参数是顶边和左边而非 x/y。定义 `X(d)/Y(d)` 换算函数,全程用"距画板左/顶部距离"写布局,见 cheatsheet。
- **中文文字会视觉偏上**:思源黑体等 CJK 字体的字身框远大于实际字形,geometricBounds 居中后字形偏上,用户