Subject: coping with funky remote printers
To: None <netbsd-users@netbsd.org>
From: Steven M. Bellovin <smb@cs.columbia.edu>
List: netbsd-users
Date: 12/31/2004 17:22:46
I have a Brother 5150D printer that is going to serve assorted NetBSD 
boxes.  The question is how best to use it.

Currently, I've connected its parallel input jack to the print server 
built in to an SMC 7004ABR NAT box.  That usually works...  However, 
NetBSD's lpd doesn't honor if= filtering for remote printers, though I 
understand that FreeBSD's does.  I'd like to use magicfilter or 
equivalent.  (apsfilter seems to have a hack-around way to do this, but 
I haven't quite gotten it working yet.)

The second issue is taking advantage of the built-in duplexer in the 
printer.  I thought that the following Postscript code was the standard 
way to turn on duplexing:

	statusdict begin true setduplexmode end

This is what is emitted by pkgsrc/print/mp, but it doesn't seem to 
work.  The Windows driver emits the following code, which (after I 
translated it slightly) does work:


%%BeginSetup  
%%BeginFeature: *Duplex DuplexNoTumble
<</Duplex true /Tumble false>>setpagedevice  
%%EndFeature  
%%EndSetup

So -- I'm looking for the simplest way to handle printing, give that I 
want magicfilter or equivalent.  I also want a simple way to let the 
user request duplexing by selecting a different printer.  (Note that 
this latter probably has to happen as some form of post-processing to 
Poscript files, which has to include the output from magicfilter.)  Any 
suggestions about how best to handle this?  

I know about apsfilter and magicfilter for converting random file 
formats to Postscript.  The latter is much simpler to get working.

For different print spoolers, I know of LPRng and CUPS.  The latter 
looks to be quite complex; besides, there are currently three security 
notices about 1.1.22nb2 in pkgsrc.  Other choices?

		--Prof. Steven M. Bellovin, http://www.cs.columbia.edu/~smb