我正在使用Automator来合并PDF文件,但无法弄清楚如何自动将生成的文件保存到同一文件夹。 (相反,它会询问我放置文件的位置。)
我正在使用它作为服务 - 这是我现有的工作流程:
1)服务在-any应用程序中接收选定的-PDF文件
2)组合PDF页面[附加页面]
3)重命名Finder项目:名称单项[名称单项,仅基名,到“TestResults”]
4)将Finder项目[移动到文件夹 - 工作流程运行时显示操作]
理想情况下,我喜欢生成的文件:
- 基于(它所在的文件夹)+(附加的静态字符串)来命名 - 保存在文件所在的文件夹中
我已经看到了人们正在获取和设置变量值的其他解决方案,但是当我尝试时,似乎我只是在命名变量,而不是实际告诉程序在哪里获取值。
(就我而言,我正在创建一个名为“folderPath”的变量,并尝试将其传递给Move Finder Items操作。)
答案 0 :(得分:6)
感谢jweaks的剧本。超级有益和优雅。
我发现并修复了一个小错误:
我得到了他的工作流程,将文件放在与原始PDF相同的文件夹中,而不是放在桌面上,调整Applescripts与Finder交谈(而不是系统事件)并返回别名,这似乎是Move Finder项目期待:
因此...
修订后的Applescript:
on run {input}
tell application "Finder" to return (container of item 1 of input) as alias
end run
修订Applescript 2
on run {input, parameters}
-- the input is the enclosing folder which was output from the previous Applescript
tell application "Finder" to return name of (item 1 of input)
end run
设置变量值:containerName
获取变量值:originalPDFs;选择选项> “忽略此动作的输入”
希望这会有所帮助......我相信我会在几年内再次查看这个答案:)
以下是截图:
答案 1 :(得分:4)
没有自动操作来获取文件容器的名称,也没有获取文件容器路径的操作,因此您可以将这些操作设置为变量。因此,您必须使用Applescript操作来获取每个。以下是一个工作自动机工作流程的示例,假设您将其置于接受PDF的服务中,即可完成您的要求。
答案 2 :(得分:0)
如果愿意,可以直接从CLI进行操作,使用代码:
"/System/Library/Automator/Combine PDF Pages.action/Contents/Resources/join.py" -o <output-file-name>.pdf <file-one>.pdf <file-two>.pdf
。将文件file.one.pdf和文件文件two.pdf合并。
此外,我建议创建一个shell脚本,并将其放在/ usr / local / bin文件夹中。 Fx。创建一个名为combine_pdfs.sh
的文件,并在其中写入以下内容:
read -p "Name of output file: " name
"/System/Library/Automator/Combine PDF Pages.action/Contents/Resources/join.py" -o $name.pdf *.pdf
这将提示用户输入输出名称,并合并当前路径中的所有pdf。