Stuff to look at
- lpr, lpq, xpp
lprm - (that is, lpr, then a space, then a trailing dash) This kills all print jobs in the queue. Worked once even when by-number didn't.
Below, everyone should document methods they use to make printing Just Work for them, and perhaps we can work towards the Right Way.
Note: this is what Richard is using. He doesn't claim that it's perfect, but it seems to work, and that's better than any other method he has tried.
Install CUPS and foomatic [packages: ???]. Use foomatic-gui to set up and configure printers. CUPS will be aware of them if you do it this way. You then want some way to easily print double-sided and stuff.
There is a config file .cups/lpoptions (used to be .lpoptions). This home-dir file lets you manually add/configure options for printers on a per-user basis. Presumably, There is a system-wide equivalent /etc/cups/lpoptions. See man lpoptions. I have been constructing these files by using xpp, making a new instance, and then saving it. Every program I tried will work with this setup, as will the normal lpr print command. You can just edit the file if you like, which can be useful when xpp tries to tell you some options are incompatible.
Below, I have two separate printers, rg-w and rg-e. rg-e is color. For each printer, the /d variant prints double sided, /2 variant prints 2-up, and /d2 does both of them. I find that this is a great system, and you can use lpr -P rg-w/d2 or whatever to print to the right one.
Default rg-w/d sides=two-sided-long-edge Dest rg-w/2 number-up=2 Dest rg-w/d2 sides=two-sided-long-edge number-up=2 Dest rg-e ColorModel=CMYK Dest rg-e/2 number-up=2 Dest rg-e/d sides=two-sided-long-edge InputSlot=Tray2 PageSize=Letter MediaType=Unspecified Dest rg-e/d2 sides=two-sided-long-edge number-up=2
This one sets up two commands rm1/even1 to print out the even sides when manually duplexing, and rm1/odd2 to print out the odd sides. Between the two, you have to manually flip the paper and put it in the manual feeder tray. The numbers 1 and 2 let you remember that you are supposed to do the even ones first.
Default rm1 Dest rm1/even1 page-set=even OutputOrder=Reverse Dest rm1/odd2 page-set=odd InputSlot=Tray_1
Making CUPS realize that there is a duplexer unit
Figure out which lpoption controls duplexing:
$ lpoptions -l | grep -i duplex HPOption_Duplexer/Duplex Unit: *True False Duplex/2-Sided Printing: None *DuplexNoTumble DuplexTumble
Set the option to True:
$ lpoptions -p rm1 -o HPOption_Duplexer=True
This adds this to the .cups/lpoptions file:
Dest rm1 HPOption_Duplexer=True
so I guess lpoptions is an interface to .cups/lpoptions.
Printing to columbia.edu NINJA printers
Go to http://www.columbia.edu/acis/facilities/printers/locations.html and look up the hostname and queue name.
Go to http://localhost:631 . Add printer. lpd printer. Queue is public. URL is like lpd://hostname/QUEUE.
Check the printer queue listing (view on the locations list).