Return to BSD News archive
Path: euryale.cc.adfa.oz.au!newshost.carno.net.au!harbinger.cc.monash.edu.au!news.cs.su.oz.au!metro!metro!munnari.OZ.AU!news.ecn.uoknor.edu!feed1.news.erols.com!disgorge.news.demon.net!demon!dispatch.news.demon.net!demon!slugvine.demon.co.uk!slugvine.demon.co.uk!jas
From: jas@slugvine.demon.co.uk (John Stark)
Newsgroups: comp.unix.bsd.freebsd.misc
Subject: Re: HELP: Printing PS files on non_ps printer
Date: Fri, 23 May 1997 23:38:53 GMT
Organization: Home
Message-ID: <EAnr0t.I8@slugvine.demon.co.uk>
References: <338456BC.502E@foto.infi.net>
NNTP-Posting-Host: slugvine.demon.co.uk
X-NNTP-Posting-Host: slugvine.demon.co.uk [158.152.194.59]
Lines: 46
Xref: euryale.cc.adfa.oz.au comp.unix.bsd.freebsd.misc:41562
In article <338456BC.502E@foto.infi.net>,
Tom Misiak <misiak@foto.infi.net> wrote:
> I have a HP540 deskjet printer (none ps) and was
>wondering how I could set up my printcap file to allow me
>to print ps files with it. I'm not very literate with FreeBSD.
>Any help would be greatly appreciated...
You need to:
1. Install GhostScript (package ghostscript-4.03)
2. Install a filter script that detects whether a print job is PostScript
and uses GhostScript if it is, but not if it isn't
3. Set up /etc/printcap to use this script
Refer to the following examples:
/etc/printcap
-------------
lp|hp|Deskjet 660C:\
:lp=/dev/lpt0:sd=/var/spool/lpd:if=/usr/local/libexec/hpif:\
:lf=/var/log/lpd-errs:sh:
/usr/local/libexec/hpif
-----------------------
#!/bin/sh
# ifhp - Print Ghostscript-simulated PostScript on a DesJet 500
# Installed in /usr/local/libexec/hpif
# Treat LF as CR+LF:
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's PostScript; use Ghostscript to scan-convert and print it
/usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=cdj550 -sOutputFile=- - \
&& exit 0
else
# Plain text or HP/PCL, so just print it directly; print a form
# at the end to eject the last page.
echo $first_line && cat && printf "\f" && exit 2
fi
exit 2
--
John Stark (at home), Cambridge, UK | mailto:jas@slugvine.demon.co.uk
Tel. Cambridge (01223) 573555 | http://www.slugvine.demon.co.uk