Michael Loßin on Tue, 15 Jan 2002 12:46:09 +0100 (CET)(envelope-from owner-apsfilter-help@apsfilter.org)


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

RE: apsfilter doesn't work on server


On 15-Jan-02 Christian Ullrich wrote:
> Hello!
> 
> I have apsfilter 7.1.1 installed on FreeBSD 4.4, printing to an 
> HP LaserJet 1200 (PS Level2). Printing from the server works just
> fine. But when I print from another machine (SuSE Linux 7.3) to the
> server, I have all kinds of problems:

Which spooler do you use on those?
Please try to use LPRng on server *and* client machines, since
the old BSD-style lpd has some problems with remote printing.

> - Text is staircased (presumably sent directly to the printer,
>   which would then have decided to use it's PCL personality).
> - I can print PostScript, but nothing else (I haven't tried raw
> PCL5).
> - When I try to print anything else, say, a tar file, the job just
>   goes somewhere and I never hear of it again.

That "somewhere" is your printer, but it doesn't speak tar,
so that file is just discarded.

> I suspect that local and remote lpd work in concert to drive me 
> crazy, by bypassing the apsfilter on the server completely. All
> the documentation on apsfilter that I have found yet does a fine
> job of maneuvering around that very question.

If you have LPRng, there's an option in /etc/lpd.conf:

# Purpose: force lpd to filter jobs (bounce) before sending to remote
queue
#   default lpd_bounce@ (FLAG off)

Maybe including "lpd_bounce" (without the @) helps. But I guess
this is not what we want here... the data should not be filtered
*before* sending it to the remote host.

> Is it at all possible to just send the data from the client to the 
> server, and let the server do all the file type recognition and 
> PostScript conversion? Or do I have to do that on every client 
> separately?

That would pretty much defeat the purpose of a printer server,
so it should be possible, of course.

> printcap on server (with bounce_queue attempt):
[...]
># APS2_BEGIN:printer2
># - don't delete start label for apsfilter printer2
># - no other printer defines between BEGIN and END LABEL
> real_lp|PS;r=600x600;q=high;c=gray;p=a4;m=auto:\
>     :lp=/dev/lpt0:\
>     :if=/etc/apsfilter/basedir/bin/apsfilter:\
>     :sd=/var/spool/lpd/real_lp:\
>     :lf=/var/spool/lpd/real_lp/log:\
>     :af=/var/spool/lpd/real_lp/acct:\
>     :mx#0:\
>     :sh:
># APS2_END - don't delete this
># bounce queue?
> lp:\
>     :lp=/dev/null:\
>       :sd=/var/spool/lpd/lp:
>       
> /etc/apsfilter/lp/lpr.conf contains "REMOTE_NAME=real_lp".

As long as there's no if=... line for "lp" that calls apsfilter,
it's not useful to create /etc/apsfilter/lp/lpr.conf ... it
simply won't be used :)

However, you wouldn't need the bounce queue at all if the
filter would be called properly... Catch 22, I guess :^)

I'm sufficiently confused now... Hasn't anyone succeeded in
building a printer server with apsfilter yet?
Or is it just the BSD-lpd that causes this?

> relevant part of printcap on client:
> 
> lp_net|remote printer on ser1:\
>         :sd=/var/spool/lpd/lp_net:\
>         :rm=ser1:\
>         :rp=lp:\
>         :bk:sh:mx#0:

Do we need an :lp=...: line here? Even if it's just
:lp=/dev/null:  or  :lp=:  ?


Michael