使用 Ghostscript 合并 pdf 文件:是否可以将 find 输出通过管道传输到 gs?

使用 Ghostscript 合并 pdf 文件:是否可以将 find 输出通过管道传输到 gs?

我想将多个 pdf 文件合并为一个。成立这个很好的答案就这样,但是这里有一个问题。我的 pdf 不在同一目录中,所以本质上我想进行一次find调用并将输出通过管道传输到gs,如下所示:

find . -path "*_somedir/*" -name "some.pdf" -print0 | gs ...

我已经检查了手册页,gs但没有关于空终止参数的信息,所以我不确定如何将参数从findto传递gs。我假设如果我跳过 -print0 标志,它将gs在第一个参数之后运行调用。

有任何想法吗?我当然愿意接受其他合并 pdf 的方法,但我想避免安装新的软件包,因为这是在社区服务器上完成的。

答案1

一种方法是假设 GNUfind(1)和 GNU xargs(1)

find /some/dir -type f -name '*.pdf' -print0 | \
    xargs -0 gs -q -dNOPAUSE -sDEVICE=pdfwrite -dBATCH -sOUTPUTFILE=out.pdf

然而,PDF 是一个复杂的庞然大物。预计由此产生的结果好坏参半。

相关内容