#!/bin/sh
#
###############################################################
#                                                             #
# PRF (Print_File)                                            #
#                                                             #
#       ATTENTION: a modifier sous CMZ dans util              #
#       et a mettre dans /usr/local/bin                       #
#                                                             #
# Version Linux                                               #
#                                                             #
#  Pour imprimer du texte ou du postscript avec differentes   #
#  options                                                    #
#  sur sm        (QMS)                                        #
#  sur rv        (Xerox)                                      #
#  sur QMS       (QMS IPSL)                                   #
#  sur QMS-trans (QMS-trans IPSL)                             #
#                                                             #
#                                                             #
# written by   : Robert FRANCHISSEUR, 24/02/98, 22.20.31      #
# modified by :  Robert FRANCHISSEUR, 25/02/98, 20.08.41      #
#                lp -c pour les prints depuis les apollos     #
#                ( sinon on est delete avant impression)      #
#                prise en compte de la variable PRINTER       #
#                (Demande de F. Hourdin)                      #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 27/02/98, 17.40.41      #
#                un test de + a cause d' auric                #
#                rv ne cause pas le meme  postscript que sm ! #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 07/03/98, 05.40.41      #
#                ajout de la reconnaissance des binaires      #
#                les plus communs                             #
#                (Demande de G. Foret)                        #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 10/03/98, 19.40.21      #
#                on permet d' autres options de a2ps          #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 05/08/98, 18.36.11      #
#                ajout prfl et prfp                           #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 07/08/98, 04.33.24      #
#                ajout linux options                          #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 14/08/98, 18:14:53      #
#                ajout QMS et QMS-trans                       #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 20/05/1999, 17:17:33    #
#                changement de philosophie: on ne teste plus  #
#                si l' imprimante est disponible si l' on     #
#                "force" une imprimante (sauf IPSL)           #
#                (Demande de C. Hourdin)                      #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 21/05/1999, 17:14:44    #
#                corrige un bug dans le cas .ps et consi-     #
#                dere egalement les .eps (J. Polcher)         #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 25/10/1999, 12:51:16    #
#                supprime lw                                  #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 07/04/2000, 12:41:13    #
#                remplace rsh par ssh                         #
#                teste si $PRINTER existe (lw...)             #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 25/07/2000, 15:35:52    #
#                ajout de lzcol lzcol-rv lzcol-tr             #
#                force recto car elle gere elle meme          #
#                avec options -lzcol et -tr                   #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 11/09/2000,  22:47:18   #
#                ajout SUN (oubli au debut)                   #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 15/09/2000,  17:48:25   #
#                ajout HP (hp8000 et hp8000rv)                #
#                remplace sm par defaut                       #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 17/09/2000,  06:34:25   #
#                ajout options -n (naked) pas de titre ni     #
#                                         de headers          #
#                              -man pages de man              #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 20/04/2001,  21:31:35   #
#                ajout option -a5                             #
#                possibilite d' imprimer du rtf et pdf        #
#                force HP                                     #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 15/01/2002,  21:31:35   #
#                ajout de lp0 pour une imprimante perso       #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 01/02/2002,  19:15:55   #
#                ajout IPSL (couleur IPSL)                    #
#                lodyc (couleur du lodyc)                     #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 12/04/2003,  04:04:34   #
#                ajout nouvelle HP (hp8150 et hp8150rv)       #
#                supprime sm, rv, SUN, QMS                    #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 29/09/2003,  18:57:45   #
#                maj   IPSL (couleur IPSL)                    #
#                et lodyc (couleur du lodyc)                  #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 07/11/2003,  01:53:44   #
#                ajout HP4600dn aka hp3                       #
#                imprimante HP laser couleur                  #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 03/12/2003,  19:58:40   #
#                ajout HP4600tr (transparents)                #
#                                                             #
# modified by :  Veronique FABART, 09/04/2004,     10:44:40   #
#                change imprimante defaut : hp8150rv          #
#                                                             #
# modified by :  Robert FRANCHISSEUR,  2004/08/24  18:51:03   #
#                corrige le bug prfl d'un fichier ps.         #
#                ajout option -text ou -plain pour pouvoir    #
#                imprimer un source postscript par ex.        #
#                ajout de l'"imprimante" display pour tests   #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 11/06/2005, 04:01:01    #
#                No daube pour ceux qui envoient du .ppt !    #
#                                                             #
# modified by : AHMED ALi, 2005/06/15 10:50                   #
#               Suppression de lzcol-tr; lzcol-rv -> lzcolrv  #
#               Rajout de hp-a3                               #
#                                                             #
# modified by : V FABART, 2005/06/16 10:50                    #
#               pour cups, redirection de hp, hp2, hp3 ...    #
#               provenant de la variable PRINTER              #
#               vers hp8000rv, hp8150rv, ...                  #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 29/11/2006, 23:22:16    #
#                support UTF-8 car a2ps ne sait toujours pas  #
#                et le titre est le nom du fichier            #
#                l'option display remarche apres modif de     #
#                /etc/a2ps.cfg                                #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 25/04/2007, 01:46:12    #
#                ajout de printer (default cups)              #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 23/10/2007, 16:23:36    #
#                modif option recto car a2ps sucks en         #
#                changeant -D en -S                           #
#                ajout de -debug                              #
#                -display ne marche pas sur les merdriva      #
#                recentes (2006) pb. avec gv                  #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 25/01/2008, 20:47:18    #
#                ajout HP4700dn aka hp4 hpcol2 tr2            #
#                imprimante HP laser couleur                  #
#                                                             #
# modified by :  Robert Franchisseur, 06/06/2008, 01:28:33    #
#                possibilite d'avoir l'input venant d'un pipe #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 23/10/2008, 16:18:06    #
#                ajout hp4515-1 et hp4515-2 aka hp1 et hp2    #
#                hp2 remplace hp8150                          #
#                suppression des imprimantes de secour.       #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 24/10/2008, 16:15:47    #
#                modif -debug on garde les fichiers           #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 07/11/2008, 04:16:49    #
#                meilleure detection de l'UTF-8               #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 27/11/2008, 22:17:15    #
#                ajout du jpeg gif et tiff avec lpr           #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 26/02/2009, 00:24:00    #
#                ajout du cas -display avec un .ps ==> gv     #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 28/08/2009, 17:00:53    #
#                on supprime hp8000, hp pointe sur hp2        #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 06/10/2009, 14:15:50    #
#                ajout imprimante du 2eme etage hp4650        #
#                hp4650 aka hp5 hpcol3                        #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 02/11/2009, 16:05:17    #
#                ajout imprimante du 2eme etage hp4515-2-4555 #
#                aka hp6                                      #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 25/11/2010, 14:36:54    #
#                -display ne marche encore plus avec a2ps     #
#                je gere dans prf                             #
#                                                             #
# modified by :  Robert Franchisseur, 08/01/2011, 00:54:58    #
#                ajout HP5550 color A3 qui remplace la 2600   #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 10/01/2011, 17:02:18    #
#                hp-a3 en recto seulement                     #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 21/01/2011, 15:18:24    #
#                ajout hp-a3rv                                #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 26/05/2011, 19:12:47    #
#                ajout -paper A4 pour pdftops au cas ou       #
#                ~/.xpdfrc manque                             #
#                                                             #
# modified by :  Veronique FABART, 26/11/2011, 14:15:50       #
#                remplacement imprimante du 2eme etage hp4650 #
#                par Lexmarx C925 : C925-2-4555-rv            #
#                C925-2-4555-rv : alias lex1, alias lexcol1   #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 07/07/2011, 19:55:14    #
#                ajout C925-2-4555-eco alias lexnb            #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 12/07/2011, 20:29:15    #
#                menage noms. On supprime la hp4600 et les    #
#                transparents                                 #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 09/05/2013, 19:46:45    #
#                ajout printer_MP et defaut imprimante cups   #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 04/01/2014, 18:40:07    #
#                ajout printer MP brother MFC7460DN           #
#                et noeco DefaultTonerSaveMode: OFF           #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 02/03/2014, 20:17:22    #
#                par defaut DefaultTonerSaveMode: OFF         #
#                et noeco devient eco                         #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 02/09/2015, 01:18:06    #
#                met one_sheet a la fin pour eviter que       #
#                --center-title prenne le pas sur -B          #
#                retire -1 de one_sheet                       #
#                                                             #
# modified by :  Robert FRANCHISSEUR, 27/11/2016, 01:51:36    #
#                on garde l'extension du fichier sinon avec   #
#                .tmp a2ps ne reconnait plus le bon type      #
#                (ex .F90)                                    #
#                ajout modifs de JYG pour nouvelles           #
#                imprimantes sag sagem sharp                  #
#                                                             #
###############################################################
#
#
#######################
#  Initialisation
#######################
shell_name=`basename $0`
RECTO=/tmp/$$recto_only
TEMPFILE=/tmp/$$prf_prf
TEMPFILE2=/tmp/$$prf_prf2
TEMPFILE3=/tmp/$$prf_prf3
PIPED_FILE=/tmp/$$piped_file
EXTEN=''
recto=false
one_sheet=''
# on ne met pas les imprimantes IPSL ici ( Ca ne semble plus vrai ?)
other_printers="hp hp1 hp2 hp3 hp4 hp4515rv-2 hp4515-2 hp4515rv-1 hp4515-1 \
hp4700rv hp4700 hp5550-a3 hp5550-a3rv hp5550-a4 hp-a3 hp-a3rv hp-a4 C925-2-4555-rv \
C925-2-4555-eco lex1 lexcol1 lexnb hp4515-2-4555 hp6 eco sag sagem sharp \
display lp0 printer"
ps=false
#isit_ps=''
rtf=false
isit_rtf=''
pdf=false
isit_pdf=''
a5=false
pr_com='a2ps'
a2ps_opt=''
dest_com=' -P'
plain=false
utf8=false
FILE=''
title=''
PRINTERL='hp4515rv-2 '
debug=false
##-- PRINTERL='printer '             # imprimante perso par defaut avec cups
#
#  Demande de C. Hourdin
#
force=true
#
#  Demande de F. Hourdin
#
if [ -n "$PRINTER" ] ; then
   for i in $other_printers
   do
   if [ "$i" = "$PRINTER" ]
   then
       PRINTERL="${PRINTER} "
       force=true
       break
   fi
   done
#  Pour cups : rediriger file hp -> hp4515-2, hp2 -> hp4515-2 ...
   case "$PRINTERL" in
      'hp1 ' | 'hp4515-1 ')
         PRINTERL='hp4515rv-p315 '
         ;;
      'hp' | 'hp2 ' | 'hp4515-2 ')
         PRINTERL='hp4515rv-2 '
         ;;
      'hp3 ' | 'hp5550-a4 ')
         PRINTERL='hp5550-a4 '
         ;;
      'hp4 ' | 'hp4700rv-p315 ')
         PRINTERL='hp4700rv-p315 '
         ;;
      'hp-a3 | hp5550-a3')
         PRINTERL='hp5550-a3 '
         ;;
      'hp-a3rv | hp5550-a3rv')
         PRINTERL='hp5550-a3rv '
         ;;
      'hp-a4 | hp5550-a4')
         PRINTERL='hp5550-a4 '
         ;;
      'lex1 ' | 'lexcol1 ' | 'C925-2-4555-rv ')
         PRINTERL='C925-2-4555-rv '
         ;;
      'lexnb ' | 'C925-2-4555-eco ')
         PRINTERL='C925-2-4555-eco '
         ;;
      'hp6 ' | 'hp4515-2-4555 ')
         PRINTERL='hp4515-2-4555 '
         ;;
      'sharp ' | 'copieur-CouloirLMD-Color ')
         PRINTERL='copieur-CouloirLMD-Color '
         ;;
      'sag ' | 'sagem ' | 'copieur-LMD-315-Color ')
         PRINTERL='copieur-LMD-315-Color '
         ;;
      'hp5 ' | 'hpcop-315-BW ')
         PRINTERL='hpcop-315-BW '
         ;;
      'hp5c ' | 'hpcop-315-Color ')
         PRINTERL='hpcop-315-Color '
         ;;
   esac
fi
#######################
#  Fonctions
#######################
exit_clean ()
{
if [ "$debug" != "true" ] ; then
  [ -f $RECTO ] && \rm -f $RECTO
  [ -f $PIPED_FILE ] && \rm -f $PIPED_FILE
  [ -f $TEMPFILE ] && \rm -f ${TEMPFILE}
  [ -f $TEMPFILE2 ] && \rm -f ${TEMPFILE2}
  [ -f $TEMPFILE3 ] && \rm -f ${TEMPFILE3}
fi
  exit $1
}
exit_clean_no3 ()
{
if [ "$debug" != "true" ] ; then
  [ -f $RECTO ] && \rm -f $RECTO
  [ -f $PIPED_FILE ] && \rm -f $PIPED_FILE
  [ -f $TEMPFILE ] && \rm -f ${TEMPFILE}
  [ -f $TEMPFILE2 ] && \rm -f ${TEMPFILE2}
##  [ -f $TEMPFILE3 ] && \rm -f ${TEMPFILE3}
fi
  exit $1
}
###
help_needed ()
{
    cat <<EOI
#
#  Usage : $shell_name [-recto] [-1] [-hp | -hp1 | -hp2 | -hp3 | -hp4 | -tr | -hp-a3 | -hp-a4] file_name
#                            defaut hp2
#
# -recto     : recto seulement  (defaut : recto-verso)
# -1         : 1 page portrait par face pour a2ps (defaut : 2 pages en landscape)
#
# -hp1       : force l' impression sur hp1 (imprimante laser 1 : hp4515-1)
# -hp2       : force l' impression sur hp2 (imprimante laser 2 : defaut hp4515-2)
# -hp3       : force l' impression sur hp3 (imprimante laser couleur : hp5550-a4)
# -hp4       : force l' impression sur hp4 (imprimante laser couleur : hp4700)
# -hpcol     : force l' impression sur hp3 (imprimante laser couleur : hp5550-a4)
# -hpcol2    : force l' impression sur hp4 (imprimante laser couleur : hp4700)
# -sag       : force l' impression sur sagem  (imprimante laser couleur : copieur-LMD-315-Color
# -sagem     : force l' impression sur sagem  (imprimante laser couleur : copieur-LMD-315-Color
# -sharp     : force l' impression sur sharp  (imprimante laser couleur : copieur-CouloirLMD-Color
# -hp5       : force l' impression sur hp5  (imprimante laser BW : hpcop-315-BW )
# -hp5c      : force l' impression sur hp5  (imprimante laser couleur : hpcop-315-Color )
#
# -hp-a3     : force l' impression sur hp-a3 au format A3 (imprimante laser couleur :hp5550-a3)
# -hp-a3rv   : force l' impression sur hp-a3 au format A3 recto/verso (imprimante laser couleur :hp5550-a3rv)
# -hp-a4     : force l' impression sur hp-a4 au format A4 (imprimante laser couleur :hp5550-a4)
#
# -lex1      : force l' impression sur lex1 (imprimante laser couleur : C925-2-4555-rv    2eme etage)
# -lexcol1   : force l' impression sur lex1 (imprimante laser couleur : C925-2-4555-rv    2eme etage)
# -lexnb     : force l' impression sur lex1 (imprimante laser N&B     : C925-2-4555-eco   2eme etage)
#
# -hp6       : force l' impression sur hp6 (imprimante laser N&B      : hp4515-2-4555  2eme etage)
#
# -lz        : force l' impression sur lzcol (imprimante couleur lzcol Martine)
# -printer   : force l' impression sur printer (imprimante perso)
#
# -text      : force l' impression du texte (source postscript par ex.)
#
# -display   : force l' impression avec gv sur l'ecran pour tester sans gacher de papier
#
##########################################################################
#
#  si le fichier a l' extension .ps c'est suppose etre du postscript,
#  si le fichier a l' extension .pdf c'est suppose etre du pdf,
#  si le fichier a l' extension .rtf c'est suppose etre du rtf,
#  sauf si -text ou -plain
#  on verifie, sinon c' est du texte.
#
# on peut aussi appeler cette shell: prfl ou prfp ou prfpg
#
# PRFL  : 1 page landscape (132 caracteres par ligne)
# PRFP  : 1 page portrait  (132 caracteres par ligne)
# PRFPG : 1 page portrait  ( 80 caracteres par ligne)
#
# autres options:
#  -n        : naked (pas de titre ni de headers)
#  -man      : pour imprimer des pages de man
#  -a5       : fait un booklet au format a5
#
# version : 1.01/01 du 2011/07/12 (support UTF-8)
#
EOI
exit_clean $1
exit 1
}
###############################
#  On peut appeler prfl ou prfp
# en creant un lien prfl --> prf
#                et prfp --> prf
###############################
case "${shell_name}" in
   prf)
      other_opt=''
      ;;
   prfl)
      other_opt='-1 -l132 -r'
###      other_opt='-l132 -r'
      ;;
   prfp)
      other_opt='-1 -l132'
###      other_opt='-l132'
      ;;
   prfpg)
      other_opt='-1'
      ;;
   *)
      # on ne doit pas passer par la mais il se peut
      # qu' un lien ait ete cree accidentellement
       echo ' '
       echo "`basename $0` : Erreur interne"
       echo "Thanks for mailling this bug to robert !"
       echo ' '
       exit 1
      ;;
esac
#
#  Here we go
#
  if [ $# -eq 0 ] ; then
   # c'est un pipe sinon help
   OLD_IFS=$IFS
   IFS=''
   while read -s -r -t 1 line
   do
      echo $line >> $PIPED_FILE
   done
   IFS=$OLD_IFS
   if [ -f $PIPED_FILE ] ;then
      FILE=$PIPED_FILE
      other_opt="--center-title= ${other_opt}"
   else
     help_needed 0
   fi
  fi
#
#######################
#  On recupere les options et le nom du fichier
#######################
  while [ $# -gt 0 ]
  do
     case "$1" in
        -h | -help | -\? | \? | -u )
             help_needed 0
             shift
             ;;
        -recto)
             recto=true
             shift
             ;;
        -1)
             one_sheet='-1'
             shift
             ;;
        -hp | -hp1 | -hp4515-1 | -hp4515rv-1)
             PRINTERL='hp4515rv-1 '
             force=true
             shift
             ;;
        -hp2 | -hp4515-2 | -hp4515rv-2)
             PRINTERL='hp4515rv-2 '
             force=true
             shift
             ;;
        -hp3 | -hp5550-a4 | -hp5550-a4rv )
             PRINTERL='hp5550-a4 '
             force=true
             shift
             ;;
        -hp4 | -hp4700-p315 | -hp4700rv-p315 | -hpcol2)
             PRINTERL='hp4700rv-p315 '
             force=true
             shift
             ;;
        -lex1 | -C925-2-4555-rv | -lexcol1)
             PRINTERL='C925-2-4555-rv '
             force=true
             shift
             ;;
        -lexnb | -C925-2-4555-eco)
             PRINTERL='C925-2-4555-eco '
             force=true
             shift
             ;;
        -hp6 | -hp4515-2-4555)
             PRINTERL='hp4515-2-4555 '
             force=true
             shift
             ;;
        -tr2 | -hp4700tr)
             PRINTERL='hp4700tr '
             force=true
             recto=true
             one_sheet='-1'
             shift
             ;;
        -hp-a3 | -hp5550-a3)
            PRINTERL='hp5550-a3 '
            force=true
            recto=true
            other_opt="--medium=A3 ${other_opt}"
            one_sheet='-1'
            shift
            ;;
        -hp-a3rv | -hp5550-a3rv)
            PRINTERL='hp5550-a3rv '
            force=true
            other_opt="--medium=A3 ${other_opt}"
#?            one_sheet='-1'
            shift
            ;;
        -hp-a4 | -hp5550-a4)
            PRINTERL='hp5550-a4 '
            force=true
            shift
            ;;
        -lp0)
             PRINTERL='lp0 '
             force=true
             shift
             ;;
        -sharp | -copieur-CouloirLMD-Color)
           PRINTERL='copieur-CouloirLMD-Color '
             force=true
             shift
           ;;
        -sag | -sagem | copieur-LMD-315-Color)
           PRINTERL='copieur-LMD-315-Color '
             force=true
             shift
           ;;
        -hp5 | -hpcop-315-BW)
           PRINTERL='hpcop-315-BW '
             force=true
             shift
           ;;
        -hp5c | -hpcop-315-Color | -hpcop-315-color)
           PRINTERL='hpcop-315-Color '
             force=true
             shift
           ;;
        -printer)
             PRINTERL='printer '
             force=true
             shift
             ;;
        -display | -test)
             PRINTERL='display '
             force=true
             shift
             ;;
        -recver)
             PRINTERL='recver '
             force=true
             shift
             ;;
        -lz | -lzcol | -lzcolrv)
             PRINTERL='lzcolrv '
             force=true
             shift
             ;;
        -n)
##--             one_sheet='-1 -B --borders=no'
             one_sheet='-B --borders=no'
             shift
             ;;
        -man)
##--             one_sheet='-1 -m'
             one_sheet='-m'
             shift
             ;;
        -a5)
             a5=true
             recto=false
             shift
             ;;
        -text | -plain)
             plain=true
             other_opt="-Eplain ${other_opt}"
             shift
             ;;
        -debug)
             debug=true
             shift
             ;;
         -*)
#             echo ' '
#             echo "Unknown option : $1"
#             echo "Usage : `basename $0` [-recto] [-1] [-sm | -rv] file_name"
#             echo ' '
#             exit 1
             other_opt="$1 ${other_opt}"
             shift
             ;;
         *)
             FILE="$1 ${FILE}"
             title="$1"
             other_opt="--center-title=$1 ${other_opt}"
             shift
             ;;
       esac
  done
#######################
#    Un seul fichier ?
#######################
     nof_file=`echo ${FILE} | wc | awk '{ print $2 }'`
     if [ "$nof_file" = "0" ] ; then
            # est-ce un pipe ?
            OLD_IFS=$IFS
            IFS=''
            while read -s -r -t 1 line
            do
               echo $line >> $PIPED_FILE
            done
            IFS=$OLD_IFS
            if [ -f $PIPED_FILE ] ;then
               FILE=$PIPED_FILE
               other_opt="--center-title= ${other_opt}"
            else
               echo ' '
               echo "No file name  given !"
               echo "Usage : `basename $0` [-recto] [-1] [-sm | -rv] file_name"
               echo ' '
               exit 1
            fi
        elif [ "$nof_file" != "1" ] ; then
            echo ' '
            echo "Only one file name allowed !"
            echo "Usage : `basename $0` [-recto] [-1] [-sm | -rv] file_name"
            echo ' '
            exit 1
     fi
#######################
#   le fichier existe - il ?
#######################
        if [ ! -f $FILE ] ; then
          echo ' '
          echo "File \"$FILE\" not found"
          echo ' '
          exit 1
        fi
#  on recupere l'extension du fichier

  EXTEN=`echo ${FILE} | rev | sed -e "s/\./ /"| awk '{ print $1}' | rev`

#######################
# on essaie d' eliminer un max de binaires
#######################
isit_bin=`file $FILE | awk '{ print $2 }'`
#for i in ${isit_bin}
#do
     case "$isit_bin" in
        empty )
          echo ' '
          echo "I don't print an *empty* file !"
          echo ' '
          exit_clean 1
          ;;
        JPEG | JPG | TIF | GIF )
          one_sheet='-1'
          ;;
        data | ELF | gzip | compressed | USTAR | current \
        | core )
          echo ' '
          echo "Pleaaaaase don't send *binary* file to the printer !"
          echo ' '
          exit_clean 1
          ;;
        Microsoft )
          echo ' '
          echo "Pleaaaaase No Daube !"
          echo ' '
          exit_clean 1
          ;;
        PostScript )
          isit_ps='%!'
          ps=true
          ;;
        Rich )
          isit_rtf='rtf'
          rtf=true
          ;;
        PDF )
          isit_pdf='pdf'
          pdf=true
          ;;
        UTF-8 )
          utf8=true
          ;;
      esac
#done
isit_utf=`file -i $FILE | awk '{ print $3 }' | grep -i utf`
[ -n "${isit_utf}" ] && utf8=true
#######################
#    Extension ps ?
#######################
  ext=`echo ${FILE} | sed  -e "s/eps/ps/g" -e "s/.*\.\(ps\)/\1/"`
#######################
#   Vraiment ps ?
#######################
#isit_ps=`sed -e '1p' $FILE | grep '^%!'`
#if [ -n "$isit_ps" ] ; then ps=true ; fi
if [ "$ext" = "ps" -a -z "$isit_ps" ] ; then
      echo ' '
      echo "Humm! Your file has a .[e]ps but doesn' t look like postscript"
      echo -n " Print it as a text file anyway ? [n] "
      read answ
      case $answ in
        [Yy]*)
           ps=false
           ;;
        *)
           exit_clean 1
           ;;
      esac
elif [ "$plain" = "true" ] ; then
# pour du source ps par ex.
      ps=false
fi
#######################
#    Extension pdf ?
#######################
  ext=`echo ${FILE} | sed  -e "s/.*\.\(pdf\)/\1/"`
#######################
#   Vraiment pdf ?
#######################
isit_pdf=`file $FILE | grep PDF`
if [ "$ext" = "pdf" -a -z "$isit_pdf" ] ; then
      echo ' '
      echo "Humm! Your file has a .pdf but doesn' t look like  PDF document"
      echo -n " Print it as a text file anyway ? [n] "
      read answ
      case $answ in
        [Yy]*)
           pdf=false
           ;;
        *)
           exit_clean 1
           ;;
      esac
fi
#######################
#    Extension rtf ?
#######################
  ext=`echo ${FILE} | sed  -e "s/.*\.\(rtf\)/\1/"`
#######################
#   Vraiment rtf ?
#######################
if [ "$ext" = "rtf" -a -z "$isit_rtf" ] ; then
      echo ' '
      echo "Humm! Your file has a .rtf but doesn' t look like Rich Text "
      echo -n " Print it as a text file anyway ? [n] "
      read answ
      case $answ in
        [Yy]*)
           rtf=false
           ;;
        *)
           exit_clean 1
           ;;
      esac
fi

#####################
# CONVERSION ICI
#####################
if [ "$pdf" = "true" ] ; then
   echo ' '
   echo " Be patient that may take a while ..."
   pdftops -paper A4 $FILE $TEMPFILE
   FILE=$TEMPFILE
   ps=true
fi
if [ "$rtf" = "true" ] ; then
   echo ' '
   echo " Be patient that may take a while ..."
   Ted ++printToFile $FILE $TEMPFILE
   FILE=$TEMPFILE
   ps=true
fi
#####################
# booklet
#####################
if [ "$a5" = "true" ] ; then
   if [ "$ps" != "true" ] ; then
      echo ' '
      echo "-a5 option works only with postscritp files !"
      echo ' '
      exit_clean 1
   fi
   nb_pages=`grep '^%%Pages' $FILE | grep -v atend | awk '{ print $2 }'`
   nb_pages=` echo $(( ( $nb_pages + ( (4 - $nb_pages%4)%4) ) /2 ))`

   pstops -pa4 '4:0L@.7(21cm,14.85cm)+-3L@.7(21cm,0),1R@.7(0,29.7cm)+-2R@.7(0,14.85cm),2L@.7(21cm,14.85cm)+-1L@.7(21cm,0),3R@.7(0,29.7cm)+-0R@.7(0,14.85cm)' $FILE $TEMPFILE2
   psselect -p-${nb_pages}  $TEMPFILE2 $TEMPFILE
   FILE=$TEMPFILE
fi
#######################
#   Imprimante OK ?
#######################
if [ "$force" != "true" ] ; then
   #
   # on en remet une couche a cause d' auric
   while  [ -n "`ssh auric lpstat -a $PRINTERL | grep not`" -o \
            -n "`ssh auric lpstat -p $PRINTERL | grep faulted`" ]
   do
        if [ -n "$other_printers" ] ; then
           other_printers=`echo $other_printers | sed -e "s/$PRINTERL//"`
           echo ' '
           echo "Printer : $PRINTERL unavailable trying another one"
           PRINTERL=`echo $other_printers | awk '{ print $1 }'`
        else
           echo ' '
           echo "No Printer available ! try again later"
           echo ' '
           exit 1
        fi
   done
   #
fi
  echo ' '
  echo "         will be printed on  $PRINTERL"
  echo ' '
#######################
#  Here we go
#######################
#
#  conversion UTF-8 ++> iso
#
if [ "$utf8" = "true" ] ; then
  iconv -f utf-8 -t iso-8859-15  $FILE > ${TEMPFILE}.${EXTEN}
  FILE=${TEMPFILE}.${EXTEN}
  TEMPFILE=${FILE}
fi
TO_PRINT=$FILE
    if [ "$ps" = "true" ] ; then
       one_sheet=''
#  Attention pas de blanc apres -P, un blanc apres -d
       pr_com='lpr '
       dest_com=' -P'
       one_sheet=''
       a2ps_opt=''
       other_opt=''
       if [ "$recto" = "true" ] ; then
           echo "%!" > $RECTO
# ne marche que sur sm
##--           echo "%%IncludeFeature: duplex (off)" >> $RECTO
# marche sur rv ( et sur sm sur lzcol et sur hp8000)
           echo "%%Requirements: Duplex" >> $RECTO
           echo "% Pagedevice definitions:" >> $RECTO
           echo "%%BeginFeature: *Duplex False" >> $RECTO
           echo "  << /Duplex false >> setpagedevice" >> $RECTO
           echo "%%EndFeature" >> $RECTO
#
           cat $FILE >> $RECTO
           TO_PRINT=$RECTO
       fi
       if [ "$PRINTERL" = "display " ] ; then
           pr_com='gv '
           dest_com=''
           PRINTERL=''
       fi
    else
       if [ "$recto" = "true" ] ; then
           a2ps_opt="-SDuplex:false"
       fi
    fi
#######################
#   On fini par imprimer
#######################
#
if [ "$PRINTERL" = "display " -o "$PRINTERL" = "recver " ] ; then
    other_opt="-o ${TEMPFILE3} ${other_opt}"
    dest_com=''
    PRINTERL2="${PRINTERL}"
    PRINTERL=''
fi
#
##--  full_com="$pr_com $one_sheet $a2ps_opt $other_opt ${dest_com}${PRINTERL} $TO_PRINT"
  full_com="$pr_com $a2ps_opt $other_opt ${dest_com}${PRINTERL} $one_sheet $TO_PRINT"
if [ "$debug" = "true" ] ; then
      echo ' '
      echo $full_com
      echo "gv ${TEMPFILE3}"
      echo ' '
else
  $full_com
  if [ "$PRINTERL2" = "display " ] ; then
      gv ${TEMPFILE3}
  fi
fi
#
#   Menage
#
if [ "$PRINTERL2" = "recver " ] ; then
    exit_clean_no3 0
else
    exit_clean 0
fi

