impagina: Added documentation and a --help argument
parent
e245525dd5
commit
57dd43cc46
@ -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
|
||||
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
|
||||
done
|
||||
|
||||
# Output final pdf
|
||||
pdftk "$inputMul4" cat $range output "$outputImpaginato"
|
||||
|
||||
# Output final pdf
|
||||
pdftk "$inputMul4" cat $range output "$outputImpaginato"
|
||||
rm "$empty" "$inputMul4"
|
||||
}
|
||||
|
||||
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
|
||||
|
Loading…
Reference in New Issue