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"

Popular posts from this blog

Automatically Fix Song Metadata and Filenames on Linux with Beets

DropboxMount turns your Dropbox into a live, on-demand drive instead of a sync folder.

script to create an EFI partition on a target bootdrive if none exists