Two ways to com­bine exist­ing pdf files stored in lists.

pdf­pages

A sim­ple solu­tion to com­bine mul­ti­ple pdf files is to use LaTeX respec­tively the pdf­pages pack­age.

With this code you can lay­out pdf pages on a page accord­ing to some para­me­tres. You need a work­ing LaTeX instal­la­tion, e.g. texlive on debian or ubuntu. You type the code in a plain text file (end­ing .tex) and com­pile it with pdflatex.

\documentclass[9pt]{scrbook}          
\usepackage{pdfpages}                 
\begin{document}                                      
\includepdfmerge                      
[nup=10x10,pages=1,scale=.9,                            
trim=26pt 26pt 26pt 26pt,clip,        
delta=0pt 0pt,offset=0 0]                  
{pdf1.pdf,pdf2.pdf.pdf3.pf}
\end{document}

Instead of typ­ing the code by one might use a script:

# ======================================================= #
# ------------------------------------------------------- #
# CREATE LaTeX CONTROL FILE
# ------------------------------------------------------- #
 
LISTTOTAKE=$TMPDIR/polyline.list TMPTEX=tmp.tex
 
echo "\documentclass[9pt]{scrbook} " > $TMPTEX echo "\usepackage{pdfpages} " >> $TMPTEX echo "\begin{document} " >> $TMPTEX echo " " >> $TMPTEX echo "\includepdfmerge " >> $TMPTEX echo "[ " >> $TMPTEX echo "nup=10x10,pages=1 " >> $TMPTEX echo "scale=.9, " >> $TMPTEX echo "trim=26pt 26pt 26pt 26pt,clip, " >> $TMPTEX echo "delta=0pt 0pt,offset=0 0 " >> $TMPTEX echo "] " >> $TMPTEX echo "{ " >> $TMPTEX
 
COUNT=1 HOWMANYPDFS=`cat $LISTTOTAKE | wc -l`
 
# --------------------------------- # for PDF in `cat $LISTTOTAKE` do KOMMA="," if [ $COUNT -eq $HOWMANYPDFS ]; then KOMMA="" fi echo ${PDF}${KOMMA} >> $TMPTEX COUNT=`expr $COUNT + 1` done # --------------------------------- #
 
echo "} " >> $TMPTEX echo "\end{document} " >> $TMPTEX
 
# ======================================================= # # ------------------------------------------------------- # # RENDER LaTeX FILE # ------------------------------------------------------- #
 
pdflatex -output-directory $OUTPUTDIR $TMPTEX

pdftk­loop

A very sim­ple solu­tion to pro­duce a lay­ered pdf file is pdftk. pdftk offers the func­tion­al­ity to place a pdf as back­ground into another. Inside a loop the out­put of pdftk becomes the back­ground for the next round. This way we get a sta­ple of pdf files.

BEFORE=$TMPDIR/before.pdf
cp `cat $LIST | shuf -n 1` $BEFORE
 
 
for PDF in `cat $LIST` do pdftk $PDF background $BEFORE output $TMPDIR/out.pdf cp $TMPDIR/out.pdf $BEFORE done