#!/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.01 ## ## E_USAGE=64 ## for a command line usage error ## for arg in "$@"; 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 ! -e "$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 2 ;; *) ;; esac if test "$outFile" = "" ; then printf "pdfpun ERROR: no output file specified\n" 1>&2 ; exit "$E_USAGE" ; fi pdfjam --reflect true $n $q $c "$sourceFile" "$pageSpec" -o /dev/stdout | \ pdfjam --landscape --nup 2x1 "$@" -o /dev/stdout | \ pdfjam --suffix nup --reflect true --fitpaper true $n $q -o "$outFile"