如何将pdf文件合并在一起并只从每个文件中取出第一页?

问题描述

我正在使用 qpdf 合并目录中的所有 pdf 文件,我只想合并多个输入文件的第一页。根据 qpdf documentation on page selection 这应该是可能的。我尝试了几个变体但没有运气:

qpdf --empty --pages *.pdf 1-1 -- "output.pdf"
qpdf --empty --pages *.pdf 1 -- "output.pdf"

我能做什么?

解决方法

如本 qpdf issue 中所述, shell 在命令 *.pdf 中扩展 qpdf --empty --pages *.pdf 1 -- "output.pdf",这意味着它替换了 *.pdf 带有当前目录中的 pdf 文件列表。假设您在当前目录中有以下 pdf 文件:

  • file1.pdf
  • file2.pdf
  • file3.pdf

命令变为:

qpdf --empty --pages file1.pdf file2.pdf file3.pdf 1 -- "output.pdf"

所以页面选择器只应用于最后一个pdf。在 Mac 或 Linux 上,您可以编写命令以在后面添加 1 每个 pdf 文件名,获取每个 pdf 文件的第一页并将它们放在一起,如下所示:

qpdf --empty --pages $(for i in *.pdf; do echo $i 1; done) -- output.pdf