在命令行中并排合并两个pdf文件

nnn*_*nnn 9 pdf command-line imagemagick pdftk

我有两个页数相同的 pdf 文件,并希望将每个页面与另一个文件中的相应页面进行比较。为此,我想将 File1.pdf 的第 1 页与 File2.pdf 的第 1 页合并,以便在新文档中获得一页。然后将 File1.pdf 的第 2 页与 File2.pdf 的第 2 页设为新文件的第 2 页。

这个问题中,我已经了解到我可以使用--nup以下pdfjam命令将两页放在一页上:

pdfjam File1.pdf File2.pdf --nup 2x1 --landscape --outfile File1+2.pdf
Run Code Online (Sandbox Code Playgroud)

使用ImageMagick包可以实现相同的目的:

montage *.pdf merged.pdf
Run Code Online (Sandbox Code Playgroud)

但这将第一个文件的第 1 页和第 2 页放在一起,稍后对第二个文件执行相同的操作 - 不是预期的。

我所做的是拆分两个文件。第一个文件的文件名是偶数,第二个是奇数(实际上我用适当的文件名重新创建了文件)。然后我再次合并所有文件

pdftk *.pdf cat output merged.pdf
Run Code Online (Sandbox Code Playgroud)

最后把两页放在一张纸上

pdfjam --nup 2x1 --landscape --outfile merged2up.pdf merged.pdf
Run Code Online (Sandbox Code Playgroud)

我可以编写一个带有循环的脚本,但我想知道是否有一个简单的单线来实现这一点?也许我没有找到正确的 pdfjam、pdftk 或 ImageMagick 命令?

小智 10

您可以将 File1.pdf 和 File2.pdf 拆分为页面,然后将这些 tmp 文件合并到 File1+2.pdf 中,如下所示:

# Split files, note the naming scheme
pdfseparate File1.pdf temp-%04d-file1.pdf
pdfseparate File2.pdf temp-%04d-file2.pdf

# Combine the final pdf
pdfjam temp-*-*.pdf --nup 2x1 --landscape --outfile File1+2.pdf

# Clean up
rm -f temp-*-*.pdf
Run Code Online (Sandbox Code Playgroud)