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

如何编写JSX/VBS脚本实现Illustrator每10分钟自动打印?

用JSX/VBS实现Illustrator定时自动打印

可行性结论

完全可行,Illustrator支持通过ExtendScript(JSX)或VBS脚本控制打印操作与定时任务,你的原代码因线程阻塞等问题无法正常运行,修正后即可实现需求。

原代码问题分析

  • 无限while(true)循环会彻底阻塞Illustrator主线程,导致软件假死、无法响应其他操作
  • app.sleep()在Illustrator的ExtendScript环境中并非可靠的定时方式,极易引发线程阻塞问题
  • 未处理无活动文档的异常场景,且doc.print()参数使用不够规范

修正后的JSX实现方案

采用app.doScript()延迟调度的方式避免主线程阻塞,同时加入错误处理与边界检查:

// 设置定时间隔(毫秒):10分钟=600000,15分钟=900000
var printInterval = 600000;

function autoPrint() {
    try {
        // 检查是否有已打开的文档
        if (app.documents.length === 0) {
            alert("未打开Illustrator文档,无法执行打印");
            return;
        }
        
        var doc = app.activeDocument;
        // 初始化打印配置,可自定义打印机等参数
        var printOpts = new PrintOptions();
        // 可选:指定目标打印机,示例:printOpts.printerName = "你的打印机名称";
        
        doc.print(printOpts);
        
        // 调度下一次打印任务
        app.doScript("autoPrint()", ScriptLanguage.JAVASCRIPT, null, printInterval);
    } catch (e) {
        alert("打印出错:" + e.message);
        // 出错后仍继续调度下一次任务
        app.doScript("autoPrint()", ScriptLanguage.JAVASCRIPT, null, printInterval);
    }
}

// 启动定时打印流程
autoPrint();

VBS脚本实现方案

若偏好VBS,可使用以下代码通过WScript调度定时任务:

Set appIllustrator = CreateObject("Illustrator.Application")
printInterval = 600000 ' 10分钟(毫秒),15分钟请改为900000

Sub AutoPrint()
    On Error Resume Next
    ' 检查是否有已打开的文档
    If appIllustrator.Documents.Count = 0 Then
        MsgBox "未打开Illustrator文档,无法执行打印"
        GoTo ScheduleNext
    End If
    
    Set doc = appIllustrator.ActiveDocument
    ' 使用默认配置打印,如需自定义打印机可添加对应参数
    doc.Print
    
ScheduleNext:
    ' 调度下一次打印任务,后台运行避免弹窗
    CreateObject("WScript.Shell").Run "wscript.exe """ & WScript.ScriptFullName & """ /scheduled", 0, False
    WScript.Sleep printInterval
End Sub

' 避免重复启动定时任务
If WScript.Arguments.Count = 0 Then
    AutoPrint()
End If

使用说明

  • JSX脚本:打开Illustrator后,通过文件>脚本>其他脚本选择保存的JSX文件即可启动
  • VBS脚本:直接双击VBS文件启动(需确保Illustrator已打开)
  • 停止任务:关闭Illustrator即可终止定时打印;若需临时停止,可在JSX中添加快捷键监听逻辑(需额外扩展)
  • 测试建议:先将间隔设为10秒(10000毫秒)验证功能正常,再调整为10/15分钟

内容的提问来源于stack exchange,提问作者ali mohammadi khah

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 19:27:11