ESN 87470-080229-791832-58


Document Name: Creating LPD Filters
Document Description: LPD output filters

Creating LPD Filters


2008/02/29

There really should be no reason you'd need to do this on any modern Linux, but I had a client with an old RedHat 7.0 system who wanted to control the output to a laser printer, specifically to make it print Landscape orientation. Hard to believe, but "printtool" on that version provided no such option.

If you look at /etc/printcap on such a system, you'll find that the "if" points to the "filter" script in the /var/spool/lpd/printername directory. That in turn is a symbolic link to a filter. You can replace that filter with your own.

Again, ordinarily you would never want to do that, especially on more modern Linuxes.

To replace it, first cd to /var/spool/lpd/printername and then "rm filter". That's important; if you don't rm it, you'll be writing over the systems filter. I replaced it with this:

 #!/bin/bash
 (
 	pagelen="45";
         lmargin=6;
 
 	echo -e "\033E\c"	# Reset printer.
 	echo -e "\033&l1O\c"    # landscape
 	echo -e "\033&l${pagelen}P\c"
 	echo -e "\033&a${lmargin}L\c"
 	echo -e "\033&k2S\c"   #compressed
         cat -
 ) | /usr/bin/crnl
 

I also created /usr/bin/crnl, which is just:

 #!/usr/bin/perl
 while (<>) {
   chomp;
   print "$_\r\n";
 }
 

And that's another script you wouldn't need on any modern Linux because your printer creation tool has adding CR's as an option.

So: ancient stuff, pay no attention to any of this nowadays. Put here just to help out someone stuck with an old system.


Author: Anthony Lawrence - Contact Author
Publisher: Anthony Lawrence
Licensee Name: Anthony Lawrence
Reference URL: http://aplawrence.com/Linux/lpd_filters.html
Copyright: All Rights Reserved
Registration Date: 2/29/2008 12:48:50 PM UTC
Views: 306




NUMLY.COM