Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Apr 2003 22:23:56 -0700
From:      Gary Schenk <gwschenk@socal.rr.com>
To:        Malcolm Kay <Malcolm.Kay@internode.on.net>, Mike Meyer <mwm@mired.org>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Newbie lpd printing
Message-ID:  <200304242223.56378.gwschenk@socal.rr.com>
In-Reply-To: <200304250038.19869.Malcolm.Kay@internode.on.net>
References:  <200304102145.25225.gwschenk@socal.rr.com> <200304231843.11719.gwschenk@socal.rr.com> <200304250038.19869.Malcolm.Kay@internode.on.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday 24 April 2003 08:08 am, Malcolm Kay wrote:
> On Thu, 24 Apr 2003 11:13, Gary Schenk wrote:
> > On Wednesday 23 April 2003 12:55 am, Malcolm Kay wrote:
> > > Until now I thought you had solved your printer problem. Some more
> > > information would probably help:
> > >  Which Epson printer do you have -- is it an inkjet? -- which
> > > particular model.
> >
> > That Epson was an old junker that was just for experimenting. The
> > quality was very poor, and I've replaced it with a HP 6122.
> >
> > >  Do you have ghostscript installed? Aladdin or Gnu?
> >
> > Gnu.
> >
> > > With this information we can possibly fix the filter script for you.
> > >
> > > A relatively simple filter switching between plain text and
> > > postscript should be fairly simple to implement if your printer is
> > > supported by ghostscript.
> >
> > That was the impression I got from my research. The script befuddles
> > me, as I got it from two very good sources. I realize that I need to
> > learn shell programming, and I am working on that, but I have a real
> > need to print now.
>
> You might find it worthwhile to look at:
> http://www.linuxprinting.org/show_printer.cgi?recnum=HP-DeskJet_6122
> The site is written with linux in mind but most applies just as well to
> FreeBSD.
>
> It would seem that the simplest way to get something out from a
> postscript source is to use (more or less) the script you found in the
> handbook with some change in the options for 'gs'. The simplest seems to
> be to set -sDEVICE=cdj970
> The appears to be an error in the version in the hand book ->
>     #!/bin/sh
>     #
>     #  ifhp - Print Ghostscript-simulated PostScript on a DESKJET 6122
>     #  Installed in /usr/local/libexec/hpif
>
>     #
>     #  Treat LF as CR+LF:
>     # (I don't know whether this works or needed for the 6122)
>     printf "\033&k2G" || exit 2
>
>     #
>     #  Read first two characters of the file
>     #
>     read first_line
>     first_two_chars=`expr "$first_line" : '\(..\)'`
>
>     if [ "$first_two_chars" = "%!" ]; then
>         #
>         #  It is PostScript; use Ghostscript to scan-convert and print
> it. #
>         #  Note that PostScript files are actually interpreted programs,
>         #  and those programs are allowed to write to stdout, which will
>         #  mess up the printed output.  So, we redirect stdout to stderr
>         #  and then make descriptor 3 go to stdout, and have Ghostscript
>         #  write its output there.  Exercise for the clever reader:
>         #  capture the stderr output from Ghostscript and mail it back
> to #  the user originating the print job.
>         #
>         exec 3>&1 1>&2
>         /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=cdj970 \
>             -sOutputFile=/dev/fd/3 - && exit 0
>
>         # The next line seems to have been retained in error
>         # /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=cdj970 \
>         #   -sOutputFile=- - && exit 0
>     else
>         #
>         #  Plain text or HP/PCL, so just print it directly; print a form
> feed #  at the end to eject the last page.
>         # (the FF code may not be correct for this printer)
>         # (The code "\014" is more nearly universal)
>         echo $first_line && cat && printf "\033&l0H" &&
>     exit 0
>     fi
>     exit 2
>
> I don't know what the default resolution will be -- if it is high the
> ghostscript conversion and data transfer could be quite slow and you
> may like to try a resolution reduction with the option -r600 or -r300
> although just what effect this will have depends somewhat on the device
> and I have no experience with the 6122.
>
> For better results you should use -sDEVICE=ijs but then you'll need to
> specify a number of other options. Take a look at ->
> file://localhost/usr/local/share/ghostscript/6.52/hpijs/hpijs_readme.htm
>l using your favourite browser. I think you'll find hpijs is already
> installed in /usr/local/bin.
>
> You might note that outputs passed directly from stdout to the print
> queue are rejected by default if they get to be too big -- which is not
> unlikely if pictures are included. This can be avoided by adding ':mx#0'
> to the printcap entry for the printer.
>
> Malcolm

Malcolm,

Thanks for sending this along. I'll give it a try as soon as possible.

Several people have been quite helpful. I never got this kind of support 
from that company in Redmond, that's for sure. :-)

I'll let the list know how it works out.

Gary



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200304242223.56378.gwschenk>