Printcap for DeskJet
Brad L. Knowles
blknowle at frodo.jdssc.dca.mil
Wed Apr 3 01:00:00 AEST 1991
Several people have asked for a printcap file for HP printers. I have a
DeskJet+ connected to the parallel port of my Sun 386i, but much of what I
will say is germane to the serial port configuration too -- in fact, you
will find that more serial port definitions for HP printers are well
supported and available than parallel port definitions. I had to kind of
be a one-man "trail-blazer" around here, as no one I talked to could give
me any help. Although I have a Sun 386i, this stuff should work for most
any Sun, and perhaps most any Unix box. Thus, I am posting this to
Sun-Spots.
Of course, what I will give you is totally unsupported, and absolutely no
claims are made about this stuff, except that this is what works for me.
Please respond via e-mail. I will summarize and re-post.
__________________________________________________________________________
| Brad Knowles | Internet: blknowle at frodo.jdssc.dca.mil |
| System Administrator | or: blknowle at wis-cms.dca.mil |
| DCA/JDSSC/JNSL | Ph: (703) 693-5849 Fax: (703) 693-7329 |
| The Pentagon, Room BE685 |_________________________________________|
| Washington, D.C. 20301-7010 | my opinions != DCA's opinions or policy |
|______________________________|_________________________________________|
------- Begin /etc/printcap file -----------------------------------------
# @(#)printcap.sample 1.11 88/07/08 Copyr 1987 Sun Micro
#
# Written by: Brad Knowles
# Written on: 11 Jan 1990
#
# Last Modified by: Brad Knowles
# Last Modified on: 18 Mar 1991
#
# Hardware: diskless Sun 386i/250, 8M swap, 16M Ram, SunOS 4.0.2
#
# The examples below are ONLY useful for printers hand-administered on a
# particular machine. Printers available to the network should be
# configured using SNAP. SNAP uses a YP version of printcap stored in
# /etc/ypprintcap and available as the ``printcap.byname'' YP-map.
# The ``generic_*'' entries below are defined in the YP-map.
#
# If your Master YP server is NOT a Sun 386i, and you are using a 386i
# yourself, you need to move the ``generic_*'' entries to this file so that
# lpd, etc... can find them. If you leave them in /etc/ypprintcap,
# you will get a whole host of errors. Info from Sun help line, put in
# /etc/printcap by Brad Knowles on 9 Feb 1990, at 1150 hours.
##------ HP DeskJet Plus attached to this machine on Parallel port 0
#
lq|hp|dj|Hewlett-Packard DeskJet Plus (Portrait, 80 Columns):\
:pw#80:\
:tc=portrait:
#
lqw|hpw|djw|Hewlett-Packard DeskJet Plus (Portrait, 132 Columns):\
:pw#132:\
:tc=portrait:
#
lqew|hpew|djew|Hewlett-Packard DeskJet Plus (Portrait, 160 Columns):\
:pw#160:\
:tc=portrait:
#
lqn|hpn|djn|Hewlett-Packard DeskJet Plus (Portrait, 40 Columns):\
:pw#40:\
:tc=portrait:
#
llq|lhp|ldj|Hewlett-Packard DeskJet Plus (Landscape, 105 columns):\
:pw#105:\
:tc=landscape:
#
llqw|lhpw|ldjw|Hewlett-Packard DeskJet Plus (Landscape, 175 Columns):\
:pw#175:\
:tc=landscape:
#
llqew|lhpew|ldjew|Hewlett-Packard DeskJet Plus (Landscape, 210 Columns):\
:pw#210:\
:tc=landscape:
#
llqn|lhpn|ldjn|Hewlett-Packard DeskJet Plus (Landscape, 52 Columns):\
:pw#52:\
:tc=landscape:
#
portrait:\
:pl#66:\
:tc=generic_php:
#
landscape:\
:pl#48:\
:tc=generic_php:
#
generic_php|Hewlett-Packard DeskJet Plus on Parallel Port 0:\
:hl:\
:lp=/dev/pp0:\
:sd=/var/spool/lp:\
:of=/usr/local/lib/dj:\
:lf=/var/spool/lp/errors:
#
lp|dhp|ddj|Draft Hewlett-Packard DeskJet Plus (Portrait, 80 Columns):\
:pw#80:\
:tc=dportrait:
#
lpw|dhpw|ddjw|Draft Hewlett-Packard DeskJet Plus (Portrait, 132 Columns):\
:pw#132:\
:tc=dportrait:
#
lpew|dhpew|ddjew|Draft Hewlett-Packard DeskJet Plus (Portrait, 160 Columns):\
:pw#160:\
:tc=dportrait:
#
lpn|dhpn|ddjn|Draft Hewlett-Packard DeskJet Plus (Portrait, 40 Columns):\
:pw#40:\
:tc=dportrait:
#
llp|dlhp|dldj|Draft Hewlett-Packard DeskJet Plus (Landscape, 105 columns):\
:pw#105:\
:tc=dlandscape:
#
llpw|dlhpw|dldjw|Draft Hewlett-Packard DeskJet Plus (Landscape, 175 Columns):\
:pw#175:\
:tc=dlandscape:
#
llpew|dlhpew|dldjew|Draft Hewlett-Packard DeskJet Plus (Landscape, 210 Columns):\
:pw#210:\
:tc=dlandscape:
#
llpn|dlhpn|dldjn|Draft Hewlett-Packard DeskJet Plus (Landscape, 52 Columns):\
:pw#52:\
:tc=dlandscape:
#
dportrait:\
:pl#66:\
:tc=generic_dphp:
#
dlandscape:\
:pl#48:\
:tc=generic_dphp:
#
generic_dphp|Draft Hewlett-Packard DeskJet Plus on Parallel Port 0:\
:hl:\
:lp=/dev/pp0:\
:sd=/var/spool/lp:\
:of=/usr/local/lib/ddj:\
:lf=/var/spool/lp/errors:
#
---------- End /etc/printcap, begin /usr/local/lib/dj --------------------
#!/bin/sh
#
# @(#)hpdeskjet 1.0 - Copyright 1990 by Brad Knowles, All Rights Reserved.
# Last modified by Brad Knowles, 23 Nov 1990
#
#
# This is the output filter for use with Hewlett-Packard DeskJet &
# DeskJet Plus printers. It is called via the "of=" entry in the
# generic_php printcap entry. One of the many things it does is send the
# escape sequence so that:
#
# CR is mapped to CR
# LF is mapped to CR LF
# FF is mapped to CR FF
# Draft mode printing selected, if appropriate
#
# Note that /usr/local/lib/ddj is a hard link to this same file, so that
# we can tell what file name we were invoked with, and thus do a little
# bit of hanky-panky to get the proper mode set!
#
# Also, for the purposes of getting this through the mail, I have subsituted
# the characters ^ and [ for the actual escape code -- you'll have to do the
# conversion back yourself.
#
name=$0
errorfile="/var/spool/lp/errors"
if test "$name" = "/usr/local/lib/dj"
then # set Letter Quality mode
/usr/bin/echo -n '^[E^[&k2G'
else # set Draft Quality mode
/usr/bin/echo -n '^[E^[&k2gk1W'
/usr/bin/echo -n '^[(s1Q'
fi
#
# Now the fancy stuff starts!
#
name="DeskJet Plus Printer Driver"
if test $# -gt 0
then
while test $# -gt 0
do
case "$1" in
"-l66")
;; # Do nothing, as Portrait=66 Lines/page is default
# Portrait modes listed from here to Landscape
"-w40")
/usr/bin/echo -n '^[(s5H';; # 5 CPI=40 columns
"-w80")
;; # Do nothing, as 10 CPI=80 columns is default
"-w132")
/usr/bin/echo -n '^[(s16.67H';; # 16.67 CPI=132 columns
"-w160")
/usr/bin/echo -n '^[(s20H';; # 20 CPI=160 columns
"-l48")
/usr/bin/echo -n '^[&l1O';; # Landscape from here on
"-w52")
/usr/bin/echo -n '^[(s5H';; # 5 CPI=52 columns
"-w105")
;; # Do nothing, as 10 CPI=105 columns is default
"-w175")
/usr/bin/echo -n '^[(s16.67H';; # 16.67 CPI=175 columns
"-w210")
/usr/bin/echo -n '^[(s20H';; # 20 CPI=210 columns
*) /usr/bin/echo "$name: No such option '$1'." >> $errorfile
esac
shift
done
fi
#
# You will note that there are not options such as "letter", "portrait",
# "normal" (for things like Letter Quality print, Portrait mode, or
# normal stroke weight) -- all of these are the *DEFAULTS*. Since the
# printer is reset before each document, these are not necessary.
#
/usr/bin/cat
if test "$status" -eq 0
then
exit 0
else
exit 1
fi
#
# Also note that we are assuming that dip switches 7 & 8 in bank 1 and
# switches 1 & 2 in bank 2 are up -- all others are down.
--------- End /usr/local/lib/dj ------------------------------------------
More information about the Comp.sys.sun
mailing list