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

如何用AppleScript实现Adobe Acrobat打印时自动选择预设参数

可行解决方案如下:

  1. 先确认权限配置
    打开 macOS 「系统设置>隐私与安全性>辅助功能」,给你运行脚本的工具(脚本编辑器、Automator 或者终端等)开启控制权限,这是System Events能操作界面的前提,很多定位失败的问题都是权限没开导致的。

  2. 修正UI元素定位层级
    你之前的代码直接在主窗口下操作,但是Acrobat的打印面板是作为主窗口的附加层级(sheet)存在的,点击「Stampante...」后弹出的设置是独立窗口,需要切换对应的层级定位元素,不要依赖keystroke tab切换焦点,这种方式稳定性极差,界面布局稍有变化就会失效。
    你可以用Xcode自带的「无障碍检查器(Accessibility Inspector)」直接抓取界面元素的准确名称、所属层级,不需要盲猜元素属性。

  3. 修改后的参考代码如下:

tell application "Adobe Acrobat Reader DC"
    activate
    open file "giungete:users:corrado:desktop:201.188_001.pdf"
    delay 1
    tell application "System Events"
        tell application process "Adobe Acrobat Reader DC"
            -- 呼出打印面板
            keystroke "p" using command down
            delay 1
            -- 定位打印附加面板
            tell sheet 1 of window "201.188_001.pdf"
                -- 直接给份数输入框赋值,不需要多次tab切换
                set value of text field "Copie" to "120"
                delay 0.1
                -- 点击Stampante按钮,按钮名和你的界面语言匹配即可
                click button "Stampante..."
                delay 1
            end tell
            -- 定位弹出的打印机设置窗口,窗口名根据你实际显示的名称调整
            tell window "Stampante"
                -- 此处替换为你需要点击的按钮名称,用无障碍检查器可以查到准确值
                click button "后续要点击的按钮名称"
                delay 0.5
            end tell
        end tell
    end tell
end tell
  1. 更稳定的无UI替代方案
    如果你的需求只是设置打印参数批量打印,不需要强制走Acrobat的界面操作,可以直接用macOS原生的lpr打印命令,完全不需要模拟点击,稳定性更高,AppleScript 中调用示例:
do shell script "lpr -P '你的打印机名称' -o copies=120 /Users/corrado/Desktop/201.188_001.pdf"

你可以通过lpoptions -l命令查看所有支持的打印参数,直接指定预设、纸张大小、单双面等所有配置。

内容的提问来源于stack exchange,提问作者Corrado Polentes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:15:08