man2ps   [plain text]


#!/bin/sh

com=`basename $0`
files=$*
ROFF=groff
ROFF_FLAGS="-C -man -Tps"
CSPLIT=

IFS="${IFS= 	}"; save_ifs="$IFS"; IFS="${IFS}:"
for i in $PATH; do
  if [ -f $i/gcsplit ]; then
	CSPLIT=$i/gcsplit
	break
  fi
  if [ -f $i/csplit ]; then
	CSPLIT=$i/csplit
	break
  fi
done
IFS="$save_ifs"

if [ "$files" = "" ]; then
    echo "Usage: $com file [file2 ...]"
    exit 1
fi

for file in $files
do
    filename=`basename $file | awk -F. '{print $1}'`
    eval $ROFF $ROFF_FLAGS $file > $filename.ps

    pages=`grep '%%Pages\:' $filename.ps | awk '{print $2}'`
    pp=`expr $pages - 1`

    echo $filename': '$pages' pages'

    if [ "$CSPLIT"x != x ]; then
        $CSPLIT -k $filename.ps /Page:/ \{$pp\} > /dev/null

        counter=0

        for number in `ls xx*`
        do
            cat xx00 > $filename$counter.ps
            echo '0.85 dup scale' >> $filename$counter.ps
            cat $number >> $filename$counter.ps
            if [ $counter != $pages ];
                then
                echo '%%Trailer' >> $filename$counter.ps
                echo 'end' >> $filename$counter.ps
                echo '%%EOF' >> $filename$counter.ps
            fi
            counter=`expr $counter + 1`
        done

        rm $filename.ps $filename'0.ps' xx*
    else
        echo "Can't find the csplit command.  You'll have to split $filename.ps manually."
    fi
done