![]() ESN 87470-080229-791832-58 |
|
Document Name: Creating LPD Filters Document Description: Creating LPD Filters2008/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 |
