#!/bin/bash

#### User modifiable options

PDFTOHTMLBIN_DIR=$HOME/pdftohtml_0_31
RM=/bin/rm

#### End of User modifiable options


function printhelp (){
echo "pdftohtml version 0.31
Copyright 1999-2000 Gueorgui Ovtcharov and Rainer Dorsch
Usage: pdftohtml [options] <PDF-file> [<html-file>,<xml-file>]
  -f <int>      : first page to convert
  -l <int>      : last page to convert
  -d <dir>      : target directory (default: basename of pdf-file)
  -o <file>     : name of output file; - means stdout (default index.html)
  -q            : don't print any messages or errors
  -h            : print this usage information
  -p            : exchange .pdf links by .html
  -c            : generate complex HTML document
  -F            : don't use frames in HTML document
  -i            : ignore images
  -s <float>    : zoom the pdf document (default 1.5)
  -x            : output for XML post-processing
"
}

TARGET=index
FRAMES=""
CSS=""
IGNOREIMAGES=""

while getopts f:l:d:o:s:qcFihx OPT; do
  case "$OPT" in
  f)
    FIRST="-f $OPTARG";;
  l)
    LAST="-l $OPTARG";;
  d)
    DIR=$OPTARG;;
  s)
    SCALE="-zoom $OPTARG";;
  o)
    if [ $OPTARG = "-" ]; then
      STDOUT=-stdout
    else
      TARGET=$OPTARG
    fi;;
  q)
    QUIET=-q;;
  F)
    FRAMES="-noframes";;
  c)
    CSS="-c";;
  i)
    IGNOREIMAGES="-i";;
  x)
    XML="-xml"
    CSS="";;
  h)
   printhelp
   exit 1;;
  *)
   echo Option not supported. Please use -h for usage information.;;
esac
done

shift `expr $OPTIND - 1`
if [ $# -eq 0 ]; then
  printhelp
  exit 1
fi

PDFFILE=$1
if [ x$DIR = "x" ]; then
  DIR=./`basename $PDFFILE .pdf`
fi

# Check if target directory exists
if [ ! -x $DIR ]; then
  mkdir -p $DIR
fi

$PDFTOHTMLBIN_DIR/pdftohtml.bin $FRAMES $STDOUT $FIRST $LAST $EXT $QUIET $CSS $IGNOREIMAGES $SCALE $XML $PDFFILE $DIR/$TARGET


image=$DIR/image.log

if [ x$CSS = "x" ]; then
  exit 0;
fi

if [ x$IGNOREIMAGES = "x" ]; then 
    HEAD=`basename $TARGET .html`
    PSFILE=$HEAD.ps
    PAPER_WIDTH=""
    PAPER_HEIGHT=""

    PAPER_WIDTH=`grep "PAPER_WIDTH" $image` 
    PAPER_WIDTH=`echo $PAPER_WIDTH|cut -f2 -d'='`

    PAPER_HEIGHT=`grep "PAPER_HEIGHT" $image`
    PAPER_HEIGHT=`echo $PAPER_HEIGHT|cut -f2 -d'='`
 
    PAPER_ROTATE=`grep "ROTATE" $image`
    PAPER_ROTATE=`echo $PAPER_ROTATE|cut -f2 -d'='`
    
    $PDFTOHTMLBIN_DIR/pdftops.bin $FIRST $LAST -paperw $PAPER_WIDTH -paperh $PAPER_HEIGHT -notext $PDFFILE $DIR/$PSFILE

    cd $DIR

    echo $PAPER_ROTATE |gs -sDEVICE=png256 -g${PAPER_WIDTH}x${PAPER_HEIGHT} -r72 -sOutputFile=$HEAD%03d.png -q -  $PSFILE
    
    rm $PSFILE
fi

