Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

How the #$%&^* can I filter lpr/lpd output on SCO OS5?

3 views
Skip to first unread message

Michael Sweeden

unread,
Dec 14, 2000, 12:09:15 PM12/14/00
to
I have a client I am migrating to an SCO OpenServer 5.0.6 system on
Saturday. I have set up lpr/lpd printing to several print servers on the
network, and would like to to a couple of simple things to the output in
some instances, like insert a trailing formfeed, and CR-CRNL mapping. I
found you can supposedly add an "of=filtername" to the /etc/printcap to
use a filter, so I tried creating one (though I can find nothing in the
documentation on creating one to do these things), and the filter does
not appear to be executed. A TA on the SCO support site says that the
"of=filtername" indeed does not work, that it has been reported to SCO
engineering, and that there is no current workaround. What a bummer!

I wanted to see in anybody has been in this situation and found a
creative solution to the problem. One idea I thought of overnight is
that I could create a printer connected to /dev/null that formats the
output as needed and then spools the job to the lpr/lpd printer. Anybody
have any other ideas? And, a simpler way to do crnl mapping than the one
I found: sed -e "s/$/`echo \"\015\"`/g" < source > destination?
Thanks!


Tony Lawrence

unread,
Dec 14, 2000, 6:28:36 PM12/14/00
to
Michael Sweeden wrote:
>
> I have a client I am migrating to an SCO OpenServer 5.0.6 system on
> Saturday. I have set up lpr/lpd printing to several print servers on the
> network, and would like to to a couple of simple things to the output in
> some instances, like insert a trailing formfeed, and CR-CRNL mapping. I
> found you can supposedly add an "of=filtername" to the /etc/printcap to
> use a filter, so I tried creating one (though I can find nothing in the
> documentation on creating one to do these things), and the filter does
> not appear to be executed. A TA on the SCO support site says that the
> "of=filtername" indeed does not work, that it has been reported to SCO
> engineering, and that there is no current workaround. What a bummer!

There was some recent mention of a fix, but the idea of sending
through a virtual printer works well and is (IMHO) much more
flexible.

>
> I wanted to see in anybody has been in this situation and found a
> creative solution to the problem. One idea I thought of overnight is
> that I could create a printer connected to /dev/null that formats the
> output as needed and then spools the job to the lpr/lpd printer. Anybody
> have any other ideas? And, a simpler way to do crnl mapping than the one
> I found: sed -e "s/$/`echo \"\015\"`/g" < source > destination?


/usr/lib/lponlcr


--
Tony Lawrence (to...@aplawrence.com)
SCO/Linux articles, help, book reviews, tests,
job listings and more : http://www.pcunix.com

John DuBois

unread,
Dec 14, 2000, 7:58:52 PM12/14/00
to

In article <3A38FEBB...@nxs.net>,
Michael Sweeden <mswe...@nxs.net> wrote:
+I have a client I am migrating to an SCO OpenServer 5.0.6 system on
+Saturday. I have set up lpr/lpd printing to several print servers on the
+network, and would like to to a couple of simple things to the output in
+some instances, like insert a trailing formfeed, and CR-CRNL mapping. I
+found you can supposedly add an "of=filtername" to the /etc/printcap to
+use a filter, so I tried creating one (though I can find nothing in the
+documentation on creating one to do these things), and the filter does
+not appear to be executed. A TA on the SCO support site says that the
+"of=filtername" indeed does not work, that it has been reported to SCO
+engineering, and that there is no current workaround. What a bummer!

In addition to misdescribing output filters in general, the documentation fails
to note that output filters only work for local printers, not network printers
(a limitation present in the BSD lpd source we started with). However, this
enhanced capability has added to lpd for future releases. Contact me if you'd
like a copy of the enhanced lpd.

Here's how the "of" capability is used, both for local printers in the present
release and remote printers in future releases:

If you set "of" to the path to a program, the program will be invoked with two
arguments, like this:

rm=132 -l66

rm=132 indicates that the paper right margin is at the 132nd column,
and -l 66 indicates that the page length is 66 lines.

Just setting e.g. of=/path/to/filter-program won't work if that program isn't
prepared to deal with those arguments. If you want to use such a program,
create a front end for it that discards any arguments. E.g. set
of=/usr/local/myfilter and make myfilter a two-line shell script:

#!/bin/ksh
exec /path/to/filter-program

John
--
John DuBois jo...@sco.com KC6QKZ/AE
I wish to God these calculations had been executed by steam. - Charles Babbage

0 new messages