Two ways to combine existing pdf files stored in lists.
pdfpages
A simple solution to combine multiple pdf files is to use LaTeX respectively the pdfpages package.
With this code you can layout pdf pages on a page according to some parametres. You need a working LaTeX installation, e.g. texlive on debian or ubuntu. You type the code in a plain text file (ending .tex) and compile 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 typing the code by one might use a script:
# ======================================================= # # ------------------------------------------------------- # # CREATE LaTeX CONTROL FILE # ------------------------------------------------------- #LISTTOTAKE=$TMPDIR/polyline.list TMPTEX=tmp.texecho "\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 "{ " >> $TMPTEXCOUNT=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
pdftkloop
A very simple solution to produce a layered pdf file is pdftk. pdftk offers the functionality to place a pdf as background into another. Inside a loop the output of pdftk becomes the background for the next round. This way we get a staple of pdf files.
BEFORE=$TMPDIR/before.pdf cp `cat $LIST | shuf -n 1` $BEFOREfor PDF in `cat $LIST` do pdftk $PDF background $BEFORE output $TMPDIR/out.pdf cp $TMPDIR/out.pdf $BEFORE done