我想将多个 pdf 文件合并为一个。成立这个很好的答案就这样,但是这里有一个问题。我的 pdf 不在同一目录中,所以本质上我想进行一次find
调用并将输出通过管道传输到gs
,如下所示:
find . -path "*_somedir/*" -name "some.pdf" -print0 | gs ...
我已经检查了手册页,gs
但没有关于空终止参数的信息,所以我不确定如何将参数从find
to传递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 是一个复杂的庞然大物。预计由此产生的结果好坏参半。