#!/bin/sh # InterleaveDoubleSidedBook.sh # Fri Jun 12 01:29:15 PDT 2009 # Chieh Cheng # http://www.CynosureX.com/ # GNU General Public License (GPL) Version 2, June 1991 scriptName=`basename "$0"` function usage () { echo " Usage: ${scriptName} \"PDF 1\" \"PDF 2\" \"output PDF\"" } if [ $# -eq 3 ] then pdf1="$1" pdf2="$2" output="$3" if [ -f "${pdf1}" ] && [ -f "${pdf2}" ] then date tempDir=`GetTempDirPath.ksh "${scriptName}"` echo "Extracting pages from ${pdf1} . . ." pdftk "${pdf1}" burst output "${tempDir}/First_%05d.pdf" echo "Extracting pages from ${pdf2} . . ." pdftk "${pdf2}" burst output "${tempDir}/Second_%05d.pdf" cwd=`pwd` cd "${tempDir}" echo "Interleaving pages from ${pdf1} . . ." ls -1 First_*.pdf > "FirstList.txt" for file in `cat "FirstList.txt" | sort` do num=`echo ${file} | sed "s/^.*_//" | sed "s/.pdf//"` page=`expr ${num} \* 2 - 1` str=`NumberToString.sh ${page} 5` mv "${file}" "Page_${str}.pdf" done echo "Interleaving pages from ${pdf2} . . ." page=0 ls -1 Second_*.pdf > "SecondList.txt" for file in `cat "SecondList.txt" | sort -r` do # num=`echo ${file} | sed "s/^.*_//" | sed "s/.pdf//"` # page=`expr ${num} \* 2` page=`expr ${page} + 2` str=`NumberToString.sh ${page} 5` mv "${file}" "Page_${str}.pdf" done echo "Creating ${output} . . ." pages="" ls -1 Page_*.pdf > "PageList.txt" for file in `cat "PageList.txt" | sort` do pages="${pages} ${file}" done pdftk ${pages} cat output "output.pdf" cd "${cwd}" mv "${tempDir}/output.pdf" "${output}" rm -r "${tempDir}" date else "${pdf1} and/or ${pdf2} do not exist." fi else usage fi