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

如何编写Alfred工作流压缩Finder中选中的PDF文件?

我来帮你搞定这个需求!要实现Finder选中PDF后直接在同目录生成压缩版,咱们可以把原来的Automator应用改成Finder快速操作(旧版系统叫「服务」),这样右键就能触发,不用先打开应用再选文件。下面是具体步骤:

改造Automator为Finder右键快速操作

步骤1:新建快速操作模板

  • 打开Automator,选择「快速操作」模板(如果是macOS Mojave及以前版本,选「服务」)
  • 在顶部的工作流程设置里:
    • 把「工作流程接收当前」改成「PDF文件」
    • 「位于」选择「Finder.app」
      这样只有在Finder选中PDF文件时,这个操作才会出现在右键菜单里

步骤2:替换文件选择逻辑,添加压缩脚本

原来的流程里应该有「选择文件」这类手动选路径的动作,直接删掉就行——快速操作会自动接收Finder选中的PDF文件。接下来添加核心的压缩逻辑:

  • 在左侧动作库搜索「运行Shell脚本」,添加到流程里
  • 把默认的脚本内容替换成下面的代码,它会自动在选中PDF的同目录生成带「_压缩版」后缀的文件:
for f in "$@"
do
    # 提取文件所在目录和不带后缀的文件名
    file_dir=$(dirname "$f")
    file_name=$(basename "$f" .pdf)
    # 定义压缩后的输出路径
    output_path="$file_dir/${file_name}_压缩版.pdf"
    
    # 用Mac自带的sips工具压缩(适合图片多的PDF)
    sips -s format pdf -s formatOptions low "$f" --out "$output_path"
done

补充说明:如果你的PDF以文本为主,sips的压缩效果有限,可以改用ghostscript(需先通过Homebrew安装:brew install ghostscript),把上面的sips命令替换成:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile="$output_path" "$f"

-dPDFSETTINGS=/screen是最高压缩率的屏幕质量,也可以选/ebook(电子书级)或/printer(打印级)

步骤3:保存并测试

  • 给这个快速操作起个好记的名字,比如「压缩PDF到同目录」,保存后它会自动出现在Finder的右键菜单里(一般在「快速操作」或「服务」子菜单下)
  • 现在在Finder选中任意PDF,右键点击这个操作,几秒钟后就能在同目录看到压缩好的文件了

可选优化

  • 如果想让压缩文件直接覆盖原文件(强烈建议先备份再尝试),可以把脚本里的output_path改成"$f"
  • 可以在脚本动作后面添加「显示通知」动作,压缩完成后弹出系统通知提醒你

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:31:40