diff --git a/impagina b/impagina index 2ff5337..6e4d219 100755 --- a/impagina +++ b/impagina @@ -1,27 +1,59 @@ #!/bin/sh -# Initialize variables -input="$1" -inputMul4="/tmp/${input%.pdf}-Mul4.pdf" -outputImpaginato="${input%.pdf}-Impaginato.pdf" -empty="/tmp/empty.pdf" -n="$(pdftk "$input" dump_data | grep NumberOfPages | cut -d' ' -f2)" - -# Add empty pages -echo .bp | groff -T pdf > "$empty" - -pdftk F="$input" E="$empty" cat F1-$n $(for x in $(seq 1 $((4-n%4))); do printf 'E1 '; done) output "$inputMul4" - -# Generate alternating page ranges -n=$((n+(4-n%4))) -range= -k=1 -while [ "$k" -lt $((n/2)) ]; do - range="$range$k $((n/2+k)) $((n/2+k+1)) $((k+1)) " - k=$((k+2)) -done - -# Output final pdf -pdftk "$inputMul4" cat $range output "$outputImpaginato" - -rm "$empty" "$inputMul4" +usage() { + _name="$(basename "$0")" + cat << EOF +Utilizzo: ${_name} [nomePDF] + +Esempi: + + ${_name} MeccanicaRazionale.pdf + +Per bug contattare f.minnocci@studenti.unipi.it +I ringraziamenti per l'idea originale vanno a http://poisson.phc.dm.unipi.it/~dilillo +EOF +exit $1 +} + +main() { + # Initialize variables + input="$(realpath "$1")" + basename="$(basename "$1")" + inputMul4="/tmp/${basename%.pdf}-Mul4.pdf" + outputImpaginato="${basename%.pdf}-Impaginato.pdf" + empty="/tmp/empty.pdf" + echo "$input $basename $inputMul4 $outputImpaginato" > ~/log + n="$(pdftk "$input" dump_data | grep NumberOfPages | cut -d' ' -f2)" + + # Add empty pages + echo .bp | groff -T pdf > "$empty" + + pdftk F="$input" E="$empty" cat F1-$n $(for x in $(seq 1 $((4-n%4))); do printf 'E1 '; done) output "$inputMul4" + + # Generate alternating page ranges + n=$((n+(4-n%4))) + range= + k=1 + while [ "$k" -lt $((n/2)) ]; do + range="$range$k $((n/2+k)) $((n/2+k+1)) $((k+1)) " + k=$((k+2)) + done + + # Output final pdf + pdftk "$inputMul4" cat $range output "$outputImpaginato" + + rm "$empty" "$inputMul4" +} + +if [ -z "$1" ] ; then + printf "Non hai specificato nessun file...\n\n" && usage 1 +else + case "$1" in + -h|--help) + usage 0 ;; + -*) + error "Opzione invalida: $1" ;; + *) + main "$@" ;; + esac +fi