#!/bin/sh ## ## pdfpun: A shell program to n-up pages of a PDF file with ## the n-upped pages ordered from right to left ## ## Author David Firth (http://go.warwick.ac.uk/dfirth) ## ## This is a simple wrapper for (three runs of) pdfjam, version 2.08 ## ## E_USAGE=64 ## for a command line usage error ## for arg do case $arg in --batch) printf "pdfpun ERROR: the --batch option is not allowed\n" 1>&2; exit "$E_USAGE" ;; --no-tidy) n='--no-tidy' ;; --quiet | -q) q='-q' ;; --checkfiles) c='--checkfiles' ;; *) continue ;; esac done sourceFile="$1" ; shift ; ## ## Some (very) minimal checking of the first argument: ## if test ! -f "$sourceFile" ; then printf "pdfpun ERROR: first argument must be a PDF file\n" ; exit $E_USAGE ; fi if test "$sourceFile" = /dev/stdin ; then if tty -s ; then printf "pdfpun ERROR: tty is connected to connected to stdin, no PDF file found\n" exit $E_USAGE ; fi fi ## ## That's all the argument checking! ## pageSpec="-" ## the default case ${1} in --* | "") ;; *) ## a page spec was given pageSpec="$1" ; shift ;; esac case ${1} in --outfile) outFile="$2" ; shift; shift ;; *) ;; esac if test -z "$outFile" ; then printf "pdfpun ERROR: no output file specified\n" 1>&2 ; exit "$E_USAGE" ; fi pdfjam -O 'reflect=true' -o /dev/stdout $n $q $c "$sourceFile" "$pageSpec" | \ pdfjam --landscape -O 'nup=2x1' -o /dev/stdout "$@" | \ pdfjam --suffix=nup -O 'reflect=true' -O 'fitpaper=true' $n $q -o "$outFile"