主要借助linux系统中的已有工具pdfunite进行多份pdf文件合成
linux系统中自带pdf处理工具,一般可以很简单使用如下命令将两份pdf合成一份pdf文件。
```bash
pdfunite 1.pdf 2.pdf 1_2.pdf
```
就是上面这条命令这么简单。
如果遇到成千上万份pdf文件,合成一份咋办
借助pdfunite工具,我们可以使用shell脚本,来完成重复合成工作。比如,1万份pdf,我们可以先分成10组1000份pdf,将每组中的1000份pdf按组合成一份pdf文件。那么这一步之后,就只剩下10个“经过1000份合成一份的”pdf文件。
这里使用shell脚本来实现上述合成原理。直接上脚本源码。如下所示,该脚本,默认当前已经存在N份pdf文件。
#!/bin/bash
#set -x
PARA=2
if [ $# -lt $PARA ];then
echo usage:$0 [pdf list] [N] [out_name]
exit 1
fi
LIST=$1
N=$2
n=0
n_mod=0
out_n=0
out_name=$3
#real_num=`cat $LIST | wc -l`
pdf_files=
while read line
do
pdf_files+=" $line"
let n=n+1
n_mod=$((n%N))
if [ $n_mod == 0 ];then
#echo $pdf_files
echo $n $out_n
pdfunite $pdf_files $out_n.$o