【问题标题】:Mac Automator - Combine PDF files, save in same folderMac Automator - 合并 PDF 文件,保存在同一个文件夹中
【发布时间】:2014-07-28 01:01:11
【问题描述】:

我正在使用 Automator 合并 PDF 文件,但不知道如何自动将生成的文件保存到同一文件夹。 (相反,它会询问我将文件放在哪里。)

我将其用作服务 - 这是我现有的工作流程:

1) 服务在任何应用程序中接收选定的 -PDF 文件-
2) 合并 PDF 页面 [附加页面]
3) 重命名 Finder 项目:命名单个项目 [命名单个项目,仅 Basename,为“TestResults”]
4) 移动 Finder 项目 [到文件夹 - 工作流运行时显示操作]

理想情况下,我会喜欢生成的文件:

-- 根据(它所在的文件夹)+(附加的静态字符串)命名
-- 保存在文件所在的文件夹中


我已经看到人们获取和设置变量值的其他解决方案,但是当我尝试时,似乎我只是在命名变量,而不是实际上告诉程序从哪里获取值。

(在我的例子中,我创建了一个名为“folderPath”的变量并尝试将其传递给 Move Finder Items 操作。)

【问题讨论】:

  • 您(打算)使用哪个“实用程序”来实际组合页面?
  • 他们说的是哪个实用程序,即 Automator。

标签: macos pdf directory automator


【解决方案1】:

感谢 jweaks 的脚本。超级乐于助人和优雅。

我发现并修复了一个小错误:

我得到了他的工作流程,将文件放入与原始 PDF 相同的文件夹中,而不是在桌面上,方法是调整 Applescripts 以与 Finder(而不是系统事件)对话并返回别名,这似乎是 Move Finder 项目期待:

那么……

  1. 服务在 Finder 中接收 PDF 文件
  2. 设置变量值:originalPDFs
  3. 运行 Applescript:

修改后的 Applescript:

on run {input}
    tell application "Finder" to return (container of item 1 of input) as alias
end run
  1. 设置变量值:containerAlias
  2. 运行 Applescript:

修订的 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
  1. 设置变量值:容器名称

  2. 获取变量的值 : originalPDFs ;选择选项>“忽略此操作的输入”

  3. 合并 PDF 页面
  4. 重命名 Finder 项目:名称单个项目、仅基本名称、容器名称“(组合)”
  5. 移动查找器项目:容器别名

希望这会有所帮助......我相信我会在几年后再次查找这个答案:)

这是截图:

【讨论】:

    【解决方案2】:

    没有获取文件容器名称的自动操作,也没有获取文件容器路径的操作,因此您可以将它们设置为变量。因此,您必须使用 Applescript 操作来获取其中的每一个。以下是完成您所要求的工作的自动化工作流程示例,假设您将其放置在接受 PDF 的服务中。

    【讨论】:

    • 如果您还有其他问题,请告诉我。
    • 第二个命令“运行 AppleScript”失败。无法将第 1 项的 «class ctnr» 设为类型引用。
    【解决方案3】:

    如果您对此感到满意,您可以直接从 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 和 file-two.pdf。

    此外,我建议创建一个 shell 脚本,并将其放在 /usr/local/bin 文件夹中。外汇。创建一个名为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。

    【讨论】:

      【解决方案4】:

      请注意,这并不能准确回答 OP 选择多个文件并将它们组合起来的任务。它只是将 Quartz Filter 独立应用于单个(或多个)PDF 文件并重命名它们。

      提出的解决方案(现在是 2022 年)似乎过于复杂。在首次尝试完成类似任务后,我切换到更简单的解决方案(在 macOS Big Sur 11.6.4 上)创建“快速操作”,其中包含:

      • Duplicate Finder Items
      • Rename Finder Items: Replace Text 带有选项:Replace Text,在basename only 中找到 copy(注意空格),替换为:_reduced
      • Apply Quartz Filter to PDF Documents

      这里唯一的假设是该文件还没有副本,因此第 1 步有效地生成了一个带有filename copy.pdf 而不是filename copy 2.pdf 的文件。

      【讨论】:

        猜你喜欢
        • 2015-05-28
        • 2020-12-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-30
        • 2017-06-18
        • 1970-01-01
        相关资源
        最近更新 更多