pdf paginator script
#!/bin/bash
if [ -z "$1" ]; then
echo "Usage: $0 filename.pdf [colour]"
exit 1
fi
f="$1"
colour="$2"
if [ -z "$colour" ]; then
colour="red"
echo "No colour supplied; defaulting to red."
echo "Options: red orange green cyan blue brown purple black"
fi
case "$colour" in
red) rgb="1 0 0" ;;
orange) rgb="1 0.5 0" ;;
green) rgb="0 0.6 0" ;;
cyan) rgb="0 0.8 0.8" ;;
blue) rgb="0 0 1" ;;
brown) rgb="0.55 0.27 0.07" ;;
purple) rgb="0.5 0 0.5" ;;
black) rgb="0 0 0" ;;
*)
echo "Invalid colour: $colour"
echo "Options: red orange green cyan blue brown purple black"
exit 1
;;
esac
n=$(pdftk "$f" dump_data | awk '/NumberOfPages/ {print $2}')
ps="${f%.pdf}_numbers.ps"
stamp="${f%.pdf}_numbers.pdf"
out="${f%.pdf}_numbered.pdf"
for i in $(seq 1 "$n"); do
echo "$rgb setrgbcolor /Helvetica-Bold findfont 18 scalefont setfont 560 820 moveto ($i) dup stringwidth pop neg 0 rmoveto show showpage"
done > "$ps"
ps2pdf -sPAPERSIZE=a4 "$ps" "$stamp"
pdftk "$f" multistamp "$stamp" output "$out"
if [ -z "$1" ]; then
echo "Usage: $0 filename.pdf [colour]"
exit 1
fi
f="$1"
colour="$2"
if [ -z "$colour" ]; then
colour="red"
echo "No colour supplied; defaulting to red."
echo "Options: red orange green cyan blue brown purple black"
fi
case "$colour" in
red) rgb="1 0 0" ;;
orange) rgb="1 0.5 0" ;;
green) rgb="0 0.6 0" ;;
cyan) rgb="0 0.8 0.8" ;;
blue) rgb="0 0 1" ;;
brown) rgb="0.55 0.27 0.07" ;;
purple) rgb="0.5 0 0.5" ;;
black) rgb="0 0 0" ;;
*)
echo "Invalid colour: $colour"
echo "Options: red orange green cyan blue brown purple black"
exit 1
;;
esac
n=$(pdftk "$f" dump_data | awk '/NumberOfPages/ {print $2}')
ps="${f%.pdf}_numbers.ps"
stamp="${f%.pdf}_numbers.pdf"
out="${f%.pdf}_numbered.pdf"
for i in $(seq 1 "$n"); do
echo "$rgb setrgbcolor /Helvetica-Bold findfont 18 scalefont setfont 560 820 moveto ($i) dup stringwidth pop neg 0 rmoveto show showpage"
done > "$ps"
ps2pdf -sPAPERSIZE=a4 "$ps" "$stamp"
pdftk "$f" multistamp "$stamp" output "$out"