如何设置 OSX 服务来删除 PDF 的第一页?

如何设置 OSX 服务来删除 PDF 的第一页?

我经常收到 PDF 文件,其中第一页要么是空白的,要么只是封面页,我不需要它。您能否建议一种快速有效的方法(Applescript、服务或???)让我只删除第一页并保存文件?

如果可以通过预览或 Adob​​e Acrobat Professional 自动实现这一点,那将是最理想的。

有任何想法吗?

答案1

您可以使用自动机工作流程。它比大多数工作流程要复杂一些,因此在实施时要小心谨慎。

这篇文章包含版本:一个较短,将输出存储Processed PDF File.pdf在桌面上,另一个较长,将文件存储为(Edited)InputFileName.pdf在同一目录中。仅较长版本所需的步骤已标记(选修的)

打开自动机并选择创建一个新的服务接收PDF 文件作为输入任何应用程序

  1. (选修的)添加变量的设定值动作并命名变量FilePath
  2. (选修的)添加运行 AppleScript操作并使用以下脚本代码获取文件所在文件夹名称:

    on run {input, parameters}
        tell application "Finder" to return (container of first item of input) as alias
    end run
    
  3. (选修的)添加变量的设定值动作并命名变量Folder

  4. (选修的)添加获取变量的值动作并返回变量FilePath。忽略此动作的输入选项
  5. (选修的)添加运行 Shell 脚本动作并传递输入作为参数. 使用以下脚本提取文件的基本名称:

    echo "$( basename "$1" )"
    
  6. (选修的)添加变量的设定值动作并命名变量FileName

  7. (选修的)添加获取变量的值动作并将变量命名为FilePath。忽略此动作的输入选项

  8. 添加PDF 转图像操作,将输出保存到桌面或任何可以保存临时文件的文件夹。 随意命名它们。

  9. 添加变量的设定值操作,以便我们稍后知道要删除哪些临时文件。将变量命名为TempFiles
  10. 添加运行 AppleScript操作,并使用以下脚本代码来过滤临时文件列表(这是我们删除第一页的地方):

    on run {input, parameters}
        return rest of input
    end run
    
  11. 添加合并 PDF 页面采取行动将碎片重新拼凑起来,追加页面

  12. 使用移动查找器项目将生成的文件(重新组合的 PDF)移动到桌面或您想要的任何文件夹。如果您决定计算输入文件的父文件夹,则可以在此处拖放对变量的引用Folder
  13. 重命名 Finder 项目操作可以为这些文件提供比 eg 更好的文件名zOpY3O.pdf,后者是合并 PDF 文件的自动分配文件名。使用 eg名称 单品并为其指定一个基本名称Processed PDF File。如果您选择使用较长的变体,请FileName从变量列表拖到文本字段,并(Edited)在其前面添加。现在我们基本上完成了,只需清理一下。
  14. 添加获取变量的值操作并获取 的值TempFiles。忽略此操作的输入选项
  15. 添加将 Finder 项目移至废纸篓删除临时单页文件的操作。

以下是工作流程完成的较长版本的屏幕截图:

在此处输入图片描述

答案2

使用上述命令行 PDF 工具,我能够编译执行以下操作的工作流程:

  1. 输入一个或多个 PDF 并生成一个减去第一页的新文件
  2. 将原始 PDF 移至废纸篓
  3. 重命名新文件以匹配原始文件

首先我按照说明安装了 PDF 工具。这里的关键工具是 pdfsplit。

在 Automator 中,我创建了一项新服务来接收 Finder 中选定的 PDF 文件。

我添加了“运行 Shell 脚本”操作,其中 shell 为“/bin/bash”,并将“传递输入”设置为“作为参数”。然后我编写了以下简单脚本:

for f in "$@"
do
        /usr/local/bin/pdfsplit "$f" 2- > "$f".tmp
done

我为原始文件添加了“将 Finder 项目移至废纸篓”操作,并添加了“替换文本”操作以从新文件中删除 .tmp 扩展名。

要使用文件夹输入运行该过程,脚本将如下所示:

cd "$@"
for f in *pdf
do
        /usr/local/bin/pdfsplit "$f" 2- > "$f".tmp
done

我想我可以在 shell 脚本中完成所有操作,包括删除和重命名。但是 rm 命令可能很危险,我宁愿将原始文件移到垃圾箱。

可以修改脚本,使其不仅仅是删除 x 页。例如,我开发了一个类似的程序来批量裁剪和合并 PDF。查看 pdfsplit 及其附带工具的手册以了解更多信息。

答案3

另一个论坛上的某个人开发了一些命令行 PDF 工具,包括一个删除页面的工具。看起来相对简单。唯一可能的问题可能是它如何与您的工作流程配合。从您的描述来看,似乎您在打开 PDF 时可以使用某些工具,并且这些工具似乎在关闭文件时(更好地)工作。

答案4

仅补充一下 Joseph Yannielli 提供的答案,对于那些决定运行 shell 脚本的人来说,在脚本中包含删除和重命名文件的命令可能会更容易,而不是通过 Automator 添加单独的操作:

for f in "$@"
do
    /usr/local/bin/pdfsplit "$f" 2- > "$f".tmp
    rm "$f"
    mv "$f".tmp "$f"
done

关于安装命令行 PDF 工具,可以使用自制

brew install pdf-tools

相关内容