hpdj


Overview

  1. Ghostscript
  2. hpdj
  3. Alternatives to hpdj

Ghostscript

What is Ghostscript?

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's Basic Architecture

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 Distributions

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.

More Information on Ghostscript

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

What is hpdj?

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.

Features

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.

Supported Printers

hpdj is in particular intended for the following printers:

  • HP DeskJet 500
  • HP DeskJet 500C
  • HP DeskJet 510
  • HP DeskJet 520
  • HP DeskJet 540
  • HP DeskJet 550C
  • HP DeskJet 560C
  • HP DeskJet 850C
  • HP DeskJet 855C
  • So much for the theory. I have received reports that hpdj "works" with the following printer models:

  • HP DeskJet 500
  • HP DeskJet 520
  • HP DeskJet 540
  • HP DeskJet 560C
  • HP DeskJet 600
  • HP DeskJet 660C/660Cse
  • HP DeskJet 670C
  • HP DeskJet 672C
  • HP DeskJet 690C
  • HP DeskJet 693C
  • HP DeskJet 694C
  • HP DeskJet 850C
  • HP DeskJet 855C (only tested for monochrome)
  • HP DeskJet 870Cse/870Cxi
  • HP DeskJet 890C
  • HP DeskJet 1100C
  • HP DeskJet 1120C
  • HP OfficeJet 590
  • Lexmark 3000 Color Jetprinter
  • 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.

    Availability

    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.

    Disclaimer

    I offer hpdj publicly because I find it useful. I do not offer any guarantee that this driver is harmless for your printer, your cat's life, or the future of the universe. USE IT AT YOUR OWN RISK!

    In addition, I should explictly mention that my employer has nothing to do with this software (no rights, no responsibilities).


    Alternatives to hpdj

    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.


    Last update: 1998-04-27
    Martin Lottermoser
    Metzgerfeldweg 9
    85737 Ismaning
    Germany
    E-Mail: Martin.Lottermoser@mch.sni.de