Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 Aug 1999 18:16:10 -0700
From:      GCT System Administrator <web@gct-us.com>
To:        questions@freebsd.org
Subject:   Printer Setup
Message-ID:  <37C5E6DA.830BDAB8@gct-us.com>

next in thread | raw e-mail | index | archive | help
Am trying to setup a remote printer using samba to connect to a win95
printer.
For some reason that I can't see, the lp doesn't call the input filter.
At least the input filter does not generate a logfile entry. So I
conclude the input filter is not running. Any ideas would be
appreciated.

The /etc/printcap is
lp:if=/usr/bin/smbprint:\
        :lp=/dev/lp1:\
        :sh:\
        :sd=/var/spool/lpd/lp:\
        :af=/var/spool/lpd/lp/acct:\
        :lf=/var/spool/lpd/lp/logfile:\
        :mx#0:

/usr/bin/smbprint is
#!/bin/sh 

# This script is an input filter for printcap printing on a unix
machine. It
# uses the smbclient program to print the file to the specified
smb-based 
# server and service.
# For example you could have a printcap entry like this
#
# smb:lp=/dev/null:sd=/usr/spool/smb:sh:if=/usr/local/samba/smbprint
#
# which would create a unix printer called "smb" that will print via
this 
# script. You will need to create the spool directory /usr/spool/smb
with
# appropriate permissions and ownerships for your system.

# Set these to the server and service you wish to print to 
# In this example I have a WfWg PC called "lapland" that has a printer 
# exported called "printer" with no password.

#
# Script further altered by hamiltom@ecnz.co.nz (Michael Hamilton)
# so that the server, service, and password can be read from 
# a /usr/var/spool/lpd/PRINTNAME/.config file.
#
# Script further modified by Richard Sharpe to fix some things.
# Get rid of the -x on the first line, and add parameters
#
#    -t  now causes translate to be used when sending files
#
# In order for this to work the /etc/printcap entry must include an 
# accounting file (af=...):
#
#   cdcolour:\
#       :cm=CD IBM Colorjet on 6th:\
#       :sd=/var/spool/lpd/cdcolour:\
#       :af=/var/spool/lpd/cdcolour/acct:\
#       :if=/usr/local/etc/smbprint:\
#       :mx=0:\
#       :lp=/dev/null:
#
# The /usr/var/spool/lpd/PRINTNAME/.config file should contain:
#   server=PC_SERVER
#   service=PR_SHARENAME
#   password="password"
#
# E.g.
#   server=PAULS_PC
#   service=CJET_371
#   password=""

#
# Debugging log file, change to /dev/null if you like.
#
#logfile=/tmp/smb-print.log
# logfile=/dev/null
logfile=/dev/console

#
# The last parameter to the filter is the accounting file name.
#   Extract the directory name from the file name.
#   Concat this with /.config to get the config file.
#
TRANS=0
eval acct_file=\${$#}
spool_dir=/var/spool/lpd/lp
#spool_dir=`dirname $acct_file` 
config_file=$spool_dir/.config

# Should read the following variables set in the config file:
#   server
#   service
#   password
eval `cat $config_file`

while getopts t c; do
  case $c in
    t)
       TRANS=1
       ;;

    '?')  # Bad parameters, ignore it ...
       ;;
  esac
done
#
# Some debugging help, change the >> to > if you want to same space.
#
echo "server $server, service $service" >> $logfile

(
# NOTE You may wish to add the line `echo translate' if you want
automatic
# CR/LF translation when printing.
        if [ $TRANS ]; then
          echo translate
        fi
        echo "print -"
        cat
) | /usr/local/bin/smbclient "\\\\$server\\$service" $password -U
$server -N -P 
>> $logfile


-- 
Bill
Global Communication Technologies
(707)586-3538
http://www.gct-us.com


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?37C5E6DA.830BDAB8>