🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by Dominic Deferia Mon, 10 Dec 2001 03:53
sharing windows printer problem
#584
Author: Dominic Deferia
Date: Mon, 10 Dec 2001 03:53
186 lines
6288 bytes
Hello. I have been trying to print to a windows printer share with no
success.

So far I have found out that the smbprint does not execute. I verified this
by looking at the
logfile=/tmp/smb-print.log (from smbprint script) after printing from
windows - this logfile
was  not created. Also, i verified the path of smbclient and it points to
the proper directory.
I am using Debian , and samba 2.0.7.



my printcap entries are :

winprt:\
    :sd=/var/spool/winspl:\            ; this exists, chmod 1777 ....winspl
    :af=/var/spool/winspl/acct:\      ; this exists, chmod 1777 ....acct
    :if=/usr/sbin/smbprint:\            ;this seems not to execute, verifed
the logfile from smbprint
    :mx#0:\
    :sh:

.................


my smb.conf

[global]

    load printers = yes
    printcap name = /etc/printcap
    printing = bsd

[printers]

    print ok = yes
    printable = yes
    path = /tmp/samba/spool       ;chmod 777 for spool directory
    gues ok = yes
    browseable = no

.............

Under /var/spool/winspl directory, I have .config as


server=PAPA   ; windows machine
service=HP      ; printshare name
password=""


............

Everytime I print, i can see files  dumped into the /var/spool/winspl
directory. I see status file which states
"winprt is ready and printing", and sometimes lock file where it has numbers
in it. The problem i guess is the
smbprint itself b/c i do not see the log file created everytime i print. I
also tried to print manually using the smbclient program by connecting to
the printer and putting in a file and it prints fine. I also did testparm
and no errors there. Also I did
testprns printername and the printer name is found.  Any ideas on this
problem is highly appreciated.


> What happens when you try to run smbprint from the command line?
> Joel

I get a black screen waiting for input.  I am new to linux and I still don't
know how scripts work. I tried to rename the smbprint script to a different
file name and create my own smbprint file
(executable) with command echo >> /tmp/test.txt just to see if i print from
windows if it will recreate the file but it did not. I just put back the
original script since i know it does not execute it.

>Are you trying to print from a windows PC to a printer attached to a unix
>samba server?
>If so, you don't need this smbprint script.
>Joel

I am trying to  use the linux server as a gateway to print to a windows
machine that has the printer.


...........


Here is the smbprint file

#!/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


#
# 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=\${$#}                     ; i cannot comprehend these lines
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 -eq 1 ]; then
          echo translate
        fi
 echo "print -"
 cat
) | /usr/bin/smbclient "\\\\$server\\$service" $password -U $server -N -P >>
$logfile
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads