#!/bin/sh # ppaprint v2.12 July 7, 2000 # # make pnm2ppa (or pbm2ppa) command line for postprocessing to produce PPA # output for HP's PPA printers (DeskJet 710, 720, 820, 1000 series). # # Duncan Haldane, the pnm2ppa project, <duncan_haldane@users.sourceforge.net> # see also http://sourceforge.net/projects/pnm2ppa # BINDIR=/usr/bin CONFIG_DIR=/etc PPA_CONFIG=$1 PAPERSIZE=$2 RESOLUTION=$3 EXTRA_GS_OPTIONS=$@ for arg in $1 $2 $3 ; do EXTRA_GS_OPTIONS=$(echo "${EXTRA_GS_OPTIONS}" | eval "sed -e 's/^.*$arg//'") done if ! [ "$RESOLUTION" = "600x600" ] ; then echo "Error - ppaprint: unsupported RESOLUTION=$RESOLUTION" exit 1 fi # extract any extra PPA options from $EXTRA_GS_OPTIONS: # format is $EXTRA_GS_OPTIONS= "(gs_options)PPA(ppa_options)" EXTRA_PPA_OPTIONS="" if echo $EXTRA_GS_OPTIONS | grep -e "PPA" >/dev/null 2>&1 ; then EXTRA_PPA_OPTIONS=$EXTRA_GS_OPTIONS EXTRA_GS_OPTIONS=$(echo "${EXTRA_GS_OPTIONS}" | sed -e 's/PPA.*$//' ) EXTRA_PPA_OPTIONS=$(echo "${EXTRA_PPA_OPTIONS}" | sed -e 's/^.*PPA//') fi # identify paper size if [ "$PAPERSIZE" = "letter" ]; then PPA_PAPERSIZE="-s letter" elif [ "$PAPERSIZE" = "a4" ]; then PPA_PAPERSIZE="-s a4" elif [ "$PAPERSIZE" = "legal" ]; then PPA_PAPERSIZE="-s legal" else PPA_PAPERSIZE="-s letter" fi # identify printer type # (at present, a type 710 is treated as a type 720 in printerdb) if echo $PPA_CONFIG | grep -e "ppa710" > /dev/null 2>&1 ; then PPA_PRINTER="-v 710" elif echo $PPA_CONFIG | grep -e "ppa720" > /dev/null 2>&1 ; then PPA_PRINTER="-v 720" elif echo $PPA_CONFIG | grep -e "ppa820" > /dev/null 2>&1 ; then PPA_PRINTER="-v 820" elif echo $PPA_CONFIG | grep -e "ppa1000" > /dev/null 2>&1 ; then PPA_PRINTER="-v 1000" fi PPA_OPTIONS="$PPA_PAPERSIZE $EXTRA_PPA_OPTIONS" if echo $PPA_CONFIG | grep -e "pbm" >/dev/null 2>&1 ; then # use the old pbm2ppa Black-and-White-only driver # first check that old pbm2ppa driver is installed if ! $BINDIR/pbm2ppa -h > /dev/null 2>&1 ; then echo "Error - ppaprint: pbm2ppa driver was not found" exit 1 fi # assemble the pbm2ppa command line: GSDEVICE=pbmraw PPA_CONF="$CONFIG_DIR/pbm2ppa.conf" if [ -f $PPA_CONF ] ; then PPA_CONF="-f $PPA_CONF" else PPA_CONF="" fi PPA_OPTIONS="$PPA_PRINTER $PPA_CONF $PPA_OPTIONS" PPA="$BINDIR/pbm2ppa $PPA_OPTIONS - - " else # use the new pnm2ppa driver with color support # first check that new pnm2ppa driver is installed if ! $BINDIR/pnm2ppa -h > /dev/null 2>&1 ; then echo "Error - ppaprint: pnm2ppa driver was not found" exit 1 fi # papersize is no longer needed by pnm2ppa >= 0.99 # (the papersize is now taken from the pnm input file header). PPA_PAPERSIZE="" # all pnm formats are now supported by pnm2ppa >= 0.99 # -- use ppmraw for color-enabled printing # -- use pbmraw in --bw black and white modes. # identify color option if echo $PPA_CONFIG | grep -e "ppa.*0b1" > /dev/null 2>&1 ; then GSDEVICE=pbmraw PPA_COLOR="--bw --eco" elif echo $PPA_CONFIG | grep -e "ppa.*0b2" > /dev/null 2>&1 ; then GSDEVICE=pbmraw PPA_COLOR="--bw" elif echo $PPA_CONFIG | grep -e "ppa.*0c1" > /dev/null 2>&1 ; then GSDEVICE=ppmraw PPA_COLOR="--eco --fd" elif echo $PPA_CONFIG | grep -e "ppa.*0c2" > /dev/null 2>&1 ; then GSDEVICE=ppmraw PPA_COLOR="-p --eco" elif echo $PPA_CONFIG | grep -e "ppa.*0c3" > /dev/null 2>&1 ; then GSDEVICE=ppmraw PPA_COLOR="" elif echo $PPA_CONFIG | grep -e "ppa.*0c4" > /dev/null 2>&1 ; then GSDEVICE=ppmraw PPA_COLOR="-p --uni" elif echo $PPA_CONFIG | grep -e "ppa.*0c5" > /dev/null 2>&1 ; then GSDEVICE=ppmraw PPA_COLOR="--eco" fi # assemble the pnm2ppa command line: PPA_CONF="$CONFIG_DIR/pnm2ppa.conf" if [ -f $PPA_CONF ] ; then PPA_CONF="-f $PPA_CONF" else PPA_CONF="" fi PPA_OPTIONS="$PPA_PRINTER $PPA_CONF $PPA_COLOR $PPA_OPTIONS" PPA="$BINDIR/pnm2ppa $PPA_OPTIONS -i - -o - " fi echo "-sDEVICE=$GSDEVICE $EXTRA_GS_OPTIONS - | $PPA " exit 0