Ghostscript Driver for HP DeskJet 812C/815C/832C/880C/882C/895C HP880C Ghostscript Driver March 6, 2000
NOTE: This driver is very old and I have not supported it for many years. There are now better drivers available, check the Linux Printing website.
DeskJet 880C/882C/895C Ghostscript Driver
(c) Copyright 2000 Matthew J. Gelhaus
All rights reserved.

Overview

This is a driver for Aladdin Ghostscript to allow full-color printing to Hewlett-Packard DeskJet 880C, 882C, 895C, and possibly other HP 800-series printers. It is based on work done by Uli Wortmann for his DeskJet 850C driver. Uli's driver has recently been admitted into the main Ghostscript distribution. We (Uli and I) are working to merge my code with his, so this driver would become part of Ghostscript as well.

Supported printers

printer GS device support
812C
815C
832C
880C
882C
895C
cdj880 v1.31 - Good text & color, photos poor.
v1.4beta - Photos working, not suitable for text.
932C cdj880 ??? - probably the same as the 970C below. Please let me know if you try this out!
970C cdj880 v1.31 - Good text & color, photos poor, doesn't use color cartridge optimally.
v1.4beta - Photos working, not suitable for text. Doesn't use color cartridge optimally.

Regarding the 900-series printers above, I have received reports of it working with the new 970C printer, but I am sure it doesn't take full advantage of that printer's new color cartridge.

BTW, if you are looking for a good list of how various printers are supported under Linux be sure to check out Grant Taylor's Linux Printing HOWTO Database. (Yes, I know his page looks similar to mine. I think he liked the style of my web page. ;-) )

Features

v1.4beta Yes!!! This is the first version to achieve photo-quality! As you can see by the version number, it is a beta and as such is not complete. Gamma is way off, resulting in photos that are still too dark and contrasty. This version also doesn't use the black cartridge at all (yet). If you are adventurous and/or would like to help improve this driver, check this version out. This version has the best photo output, but is not yet suitable for text output (I still need to work in a true-black/composite-black switch).

v1.31 This driver works pretty well for most tasks. Text and color graphics come out guite good. The main known problem is the dithering for photographs is too coarse, given the capabilities of the printer. For most tasks, except printing of photographs, this driver is an acceptable substitute for the Windows driver. For photographs, this driver is still the best alternative I have found for Ghostscript. This version also has an annoying blinking-light bug (on the printer) after a job is finished, but it doesn't really affect anything. This version currently produces the best text output and good graphics (but not photo) output.

System requirements

This package requires Aladdin Ghostscript. It will work with all versions >= 5.5, including the latest 6.0 release. It may work with older versions of Ghostscript as well, but I have not tested it. (This might be your excuse to upgrade, anyway!)

Ghostscript is platform independent, but as I use Linux I can give info about the systems I have tested it on. I have successfully tested it on Linux 2.0.30, 2.0.36, and 2.2.5 with both libc5 (2.0 kernels) and glibc (2.2 kernel). I only have an 880C, so I rely on reports from others to confirm it works on other HP DeskJet models.

License

Until now, I have been working under the GNU General Public License, which is a fine open-source license that protects against unethical use of open-source code. Ghostscript is under the Aladdin Free Public License, which unfortunately is incompatible with the GPL. In order to make my code compatible with Ghostscript so it can be included in future distributions, I will be changing the license to the Aladdin Free Public License for the final version 1.4.

Download

I only provide source code, because I simply don't have time to maintain binaries. If someone wants to contribute binaries, I would be willing to post them here, or provide a link to wherever you wanted to host them.

You may want to shift-click to save the following links directly to a file:

1.4beta 26-Feb-2000 gdevcd8.c
(103K)
tar/gz
(24K)
ZIP
(24K)
BETA! Photo-quality, but too dark and contrasty. Composite black, so unsuitable for text. Lays down too much ink. Blinking-light bug finally squashed for good.
1.31 15-Mar-1999 gdevcd8.c
(98K)
tar/gz
(23K)
ZIP
(23K)
Excellent text, good graphics, poor photos. Currently the best general-purpose driver.

Installation

Now that Ghostscript 6.0 includes Uli's driver, installation is a lot easier than it used to be. Along with the instructions, I include an example for Linux (or other versions of Unix).

Ghostscript 6.0

1. Unpack the Ghostscript distribution according to the official instructions at the Ghostscript home page.

2. Copy the file gdevcd8.c you obtained above into the Ghostscript source directory. (if necessary, unpack the archive first).

3. Edit the file contrib.mak. Find the section for the cdj850 driver (it begins at line 451 for Ghostscript 6.0). Insert the following between the cdj670.dev line and the cdj890.dev line:

$(DD)cdj880.dev : $(cdeskjet8_) $(DD)page.dev
     $(SETPDEV2) $(DD)cdj880 $(cdeskjet8_)
Make sure you insert a -TAB- character before the second line (not spaces)!

For your convenience, here is a copy of contrib.mak already edited (for GS 6.0 only!): contrib.mak.

4. Edit the appropriate makefile for your system and add the cdj880 device to one of the DEVICE_DEVS# lines. For example:

DEVICE_DEVS19=$(DD)cdj880.dev
Here is a modified unix-gcc.mak for Linux/Unix: unix-gcc.mak

5. Build Ghostscript. Refer to the Ghostscript home page if you need instructions.

Example build of Ghostscript 6.0 on Linux:

$ su
Password:
# cd /usr/local/src
# tar zxvf /tmp/ghostscript-6.0.tar.gz
# cd gs6.0
# tar zxvf /tmp/ghostscript-6.0jpeg.tar.gz
# tar zxvf /tmp/ghostscript-6.0libpng.tar.gz
# tar zxvf /tmp/ghostscript-6.0zlib.tar.gz
# mv jpeg-6b jpeg
# mv libpng-1.0.3 libpng
# mv zlib-1.1.3 zlib
# cd src
# cp /tmp/gdevcd8.c ./
# kwrite contrib.mak

...some editing happens...
# kwrite unix-gcc.mak
...some editing happens...
# cd .. # ln -s /usr/X11R6 /usr/X11 (needed by some Linux distributions) # make -f src/unix-gcc.mak

Usage

This driver adds the device cdj880. Use the switch -sDEVICE=cdj880 to invoke.

This driver adds a few specific command-line options to Ghostscript:

option default meaning
-dPapertype 0 0=plain paper, 1=bond paper, 2=special paper, 3=photo paper, 4=transparency
-dQuality 1 -1=draft, 0=normal, 1=best
-dMasterGamma 1.0 (v1.31) Master gamma value. Must be >1.0 for other gamma values to have an effect.
-dGammaValC 0.0 (v1.31) Cyan gamma value.
-dGammaValM 0.0 (v1.31) Magenta gamma value.
-dGammaValY 0.0 (v1.31) Yellow gamma value.

Consult the Ghostscript documentation for general usage information about Ghostscript.

Example using the driver in Linux:

$ gs -q -sDEVICE=cdj880 -dNOPAUSE -dSAFER -dBATCH\
       -sOutputFile=- test.ps |lpr

Contact

I no longer support this driver. Feel free to take this source code and do whatever you'd like with it, but please do not contact me for support.

Credits

As mentioned above, this driver is based on the work of Uli Wortmann, who wrote the original DeskJet 850C driver.