萌新自己摸索,打算搞出的效果是:把「装有图片的文件夹」扔进指定文件夹内,则按图片名称顺序生成一个PDF。
按照上图设置,当我扔进去1个文件夹时,确实能够达成想要的效果;但如果扔进去2个文件夹,它并不会生成2个PDF,而是会把两个文件夹里的所有图片都整合起来,生成1个PDF。
求教有没有办法,让每个文件夹内的图片独立生成不同的PDF?
题主悬赏了80铜
|
已采纳 ctgnauh 的答案
MacOS的「自动操作」如何使之按文件夹逐个运行
回答
-
首先说结论:基于文件夹的自动流程会递归查询文件夹下的全部子文件夹,然后进行统一操作。所以你要的效果做不到。
但是替代方案都挺简单:
1、创建一个类型为“快速操作”的自动流程,然后可以在finder中右键任何文件夹手动创建pdf。
2、撸一个shell脚本 -
用shell脚本会很简单,也可以把shell和「自动操作」结合使用,创建一个新的快速操作,然后在「访达」里选择多个文件夹然后运行这个快速操作。注意macOS 12及以上还需要在「系统偏好设置」里授予「访达」完全磁盘访问权限,不然脚本会没有操作权限,「访达」的路径是/System/Library/CoreServices/Finder.app。
快速操作的设置方式如截图所示:
具体负责功能的脚本内容已经尽量考虑到各种异常情况了,还有什么问题再说。需要通过「终端」安装Homebrew(最主要是因为需要通过Homebrew安装ImageMagick来转换PDF),按说明装完了之后再通过终端安装必要的软件包:brew install coreutils findutils imagemagick
脚本的文本如下:if [ -x /opt/homebrew/bin/brew ]; then
eval "$(/opt/homebrew/bin/brew shellenv)"
elif [ -x /usr/local/bin/brew ]; then
eval "$(/usr/local/bin/brew shellenv)"
else
exit 9
fi
for i in "${@}"; do
[ ! -d "$i" ] && continue
list="$(find -E "$i" -type f -regex '.+\.(jpg|png|webp)')"
[ -z "$list" ] && continue
{
gxargs -d '\n' gls -1ANv <<< "$list"
echo "${i}.pdf"
} | gxargs -d '\n' convert -quality 100
done-
heyoutui @nathaniel_wu 感谢大佬!逛P9五六年,大佬的头像很眼熟,一直没有机会交流,此番相助感激不尽!经过尝试顺利运行,格式上貌似会区分大小写,JPG格式的图片无法识别,在list那一行添加了|JPG|PNG,就完美了。不知道会不会有人百度到这篇问答,能造福后来者就好了。
-
发表评论,请先 登录