使用脚本在 Linux 中合并多个 pdf?

使用脚本在 Linux 中合并多个 pdf?

我想从 X 网站保存/下载 pdf,然后将所有这些 pdf 合并为一个,这样我就可以轻松地一次查看它们。

我做了什么,

  1. 从网站获取 pdf

    wget -r -l1 -A.pdf --no-parent http://linktoX
    
  2. 将 PDF 合并为一个

    gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=Combined_`date +%F`.pdf -dBATCH file1.pdf file2.pdf file3.pdf
    

我的问题是,我想用一个脚本自动完成这一切,这样我就不必每天都这样做了。这里每天都会在 X 中添加新的 pdf。

那么,我该如何执行上述第 2 步,而不提供所有 pdf 的完整列表,我尝试file*.pdf在步骤 2 中执行此操作;但它以随机顺序组合了所有 pdf。

下一个问题是,文件*.pdf 的总数每天都不一样,有时是 5 个 pdf,有时是 10 个......但好处是它按 file1.pdf file2.pdf 的顺序命名...

因此,我需要一些帮助来完成上述第 2 步,以便所有 pdf 按顺序合并,而我不必明确给出每个 pdf 的名称

谢谢。

更新:这解决了问题

pdftk `ls -rt kanti*.pdf` cat output Kanti.pdf

我首先ls -rt按照file1.pdf下载的方式进行操作,然后file2.pdf依此类推...只需将其ls -t放在file20.pdf开始和file1.pdf最后...

答案1

除了 file*.pdf,您还可以使用反引号通过其他命令输出所需文件列表,例如ls ...chmeee 的答案。您应该能够像这样使用原始 ghostscript 命令:

这将按修改日期对文件进行排序,最旧的在第一位:

gs [...] `ls -rt file*pdf`

这将按数字顺序对它们进行排序,从第 5 个字符开始:

gs [...] `ls | sort --key=1.5 -g`

答案2

尝试pdftk并使用这样的排序:

pdftk `ls files*pdf | sort` cat joined.pdf

相关内容