Ghostscript is a PostScript interpreter, i.e., a program accepting a PostScript file as input and generating a representation of it in another format. Ghostscript was designed and is maintained by L. Peter Deutsch of Aladdin Enterprises, California.
Ghostscript is divided into a kernel, which understands PostScript, and so-called device drivers. The latter are called from the kernel to do basic drawing operations and to ship out completed pages, usually in a format specific to the driver.
Device drivers are currently not separately loadable but have to be compiled into the program. Therefore, if you want to change the set of drivers contained in your ghostscript executable you have to recompile it.
Ghostscript source code is distributed in two forms: as Aladdin ghostscript and as GNU ghostscript. A GNU ghostscript distribution is a re-issue of an Aladdin ghostscript distribution with less restrictions on commercial (re-)distribution. Both use the same version numbers. The intention is apparently to have a gap of about a year between corresponding releases in these two series. At present (spring 1998), this delay amounts to a bit more than two years.
Ghostscript distributions can be found on a number of FTP servers. In addition, most Linux distributions contain a ghostscript distribution, sometimes with an extended set of device drivers.
The main WWW resource for ghostscript is http://www.cs.wisc.edu/~ghost. It tells you what the current version of ghostscript is, how to obtain it, and what other programs and pieces of information are of interest in this context.
Of course, every ghostscript distribution contains also documentation.
hpdj is a ghostscript device driver for printers understanding Hewlett-Packard's Printer Command Language, Level 3 (PCL-3). This applies in particular to some but not all HP DeskJet printers.
The main design goals of hpdj were maintainability, reliability, and support for "new" DeskJets, starting with the HP DeskJet 540.
To give a first impression regarding maintainability, the ratio of comment lines to netto lines of code is roughly 2.6 times as high in hpdj as on average in ghostscript. Reliability is mainly achieved by strict adherence to HP's official documentation, as far as it can be obtained. Unfortunately, the information offered by Hewlett-Packard is not as up-to-date as I could wish. The code lists all the documentation used in order to enable everyone to inspect the driver's quality.
The main features of hpdj are:
hpdj does not support different resolutions for black and CMY components, i.e., there is no combined 600 ppi black + 300 ppi CMY mode, and it does not support photo cartridges.
hpdj is in particular intended for the following printers:
So much for the theory. I have received reports that hpdj "works" with the following printer models:
So far I have not heard of a PCL-3 printer which could not be accessed via hpdj, i.e., the list of PCL-3 printers known not to work with hpdj has remained empty.
Note that Hewlett-Packard does not only produce PCL-3 DeskJets. In particular, there is the DeskJet 820Cse/820Cxi which expects HP's Printing Performance Architecture (PPA) commands and is intended exclusively for systems running Microsoft Windows. There exist now at least two possibilities to use a PPA printer with ghostscript: see ftp://ftp.ig.utexas.edu/outgoing/scottk/820C/ and http://www.rpi.edu/~normat/technical/ppa.
hpdj is available under the terms of the GNU Library General Public License (LGPL). The main location for hpdj is the directory ftp://ftp.pdb.sni.de/pub/utilities/misc. Look for files named hpdj-version.tar.gz.
I am distributing hpdj only in the form of gzipped tar archives. If you wish to compile hpdj on a non-UNIX platform, you need gzip, tar (on systems running Microsoft Windows, you can use the Cygnus port of the GNU tools), and a command to convert text files from LF-terminated lines to whatever the line termination conventions are on your system.
hpdj is not part of the main ghostscript distributions. I offered it to L. Peter Deutsch twice, in September 1996 and in March 1997, but he declined on both occasions although he was also dissatisfied with the existing PCL-3 drivers. The first time hpdj did not yet contain colour support, and the second time he would have preferred an integration with the uniprint driver, see below. I've given up on this point and, besides, I don't find it that important.
If you want to use hpdj you will therefore usually have to fetch it separately and to recompile ghostscript. I know however, of two Linux distributions, S.u.S.E. Linux and Debian Linux, which include hpdj in their newer ghostscript packages.
In addition, I should explictly mention that my employer has nothing to do with this software (no rights, no responsibilities).
hpdj is not the only ghostscript driver generating PCL-3.
Every current ghostscript distribution contains several drivers with this property, in particular the cdj series for some of the DeskJet 500 series printers. However, as my dissatisfaction with these drivers was the reason I developed hpdj, I cannot honestly recommend them. Other people might have a different opinion, though.
Uli Wortmann has modified the cdj driver for in particular the HP DeskJet 850C. His cdj850 driver is available from http://bonk.ethz.ch. Gunther Hess, author of the uniprint driver, intends to merge parts of hpdj into uniprint. Uniprint is included in ghostscript distributions since version 4.70 and is intended to become a universal driver for ink jet printers.If you are unable to find a driver satisfying your requirements among these choices, you can of course always write a new one. This is, however, not a simple task, and for various reasons I would not even call it a particularly rewarding one.