Date: Mon, 4 Nov 2002 17:51:12 -0700 (MST) From: Warren Block <wblock@wonkity.com> To: sroberts@dsl.pipex.com Cc: FreeBSD Questions <freebsd-questions@FreeBSD.ORG> Subject: Re: Printing to HP845c attached to Win2K - over samba? Message-ID: <Pine.BSF.4.21.0211041718580.21771-100000@wonkity.com> In-Reply-To: <1036435999.42594.18.camel@Demon.vickiandstacey.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 4 Nov 2002, Stacey Roberts wrote: > Input filter., I take it you're referring to smbprint. Forgive me, but I > really know very little about printing as it is, and would appreciate > guidance here. Okay, quick overview: lpd is the line printer daemon. It runs all the time, waiting for print jobs. The printers it can use are defined in /etc/printcap. lpr is used to submit print jobs. Sometimes you have to translate what is submitted as a print job into what the printer wants. For instance, Unix end-of-lines are plain linefeeds rather than the more common CR/LF. An input filter can be used to convert what you have to what you need. Chapter 11 in the Handbook goes into this a little bit, and does cover the stairstepping case. Input filters are the if= lines in /etc/printcap entries. As an example, here's a Perl input filter that will fix the stairstepping problem by translating linefeeds into CR/LF: #!/bin/sh /usr/bin/perl -pe 's/\n/\r\n/s/g;' Create that as the file crlf in /usr/local/libexec, and use chmod +x to make it executable. Then put this in your /etc/printcap: lp:\ :lp=/dev/lpt0:\ :sh:\ :lf=/var/log/lpd-errs:\ :if=/usr/local/libexec/crlf:\ :sd=/var/spool/output/lpd/lp: That's a printcap entry that says the printer device is /dev/lpt0, suppress headers, the log file is lpd-errs, the input filter is the file you just made, and the spool directory is in /var. You have to create that spool directory, and set the ownerships. Again, see the Handbook Printing chapter for that. (You may also need to have it add a form feed at the end of the job, which I think is :ff:, but can't recall exactly.) > I've ready through smbprint, and it doesn't mention print-control chars > that are included anywhere.., so are the carraige-return and line-feed > control chars to be included by myself before copying smbprint to the > location referenced here: "`dirname $0`/smbclient"? I haven't used printing through Samba, but I'd get the basic /etc/printcap setup completed before going on to printing through Samba. The other option has also been mentioned: apsfilter and other "print filter" packages generally detect what kind of thing you're printing and apply the appropriate filters. I haven't tried them; I'd rather control /etc/printcap and filtering directly myself. -Warren Block * Rapid City, South Dakota USA 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?Pine.BSF.4.21.0211041718580.21771-100000>