hpinkjet.sourceforge.net

# Hewlett-Packard Co. Inkjet Driver Project

The Hewlett-Packard Inkjet Driver Project is a add-on to the GNU Ghostscript application. This driver is open source software based on the Hewlett Packard Appliance Printing Development Kit APDK for deskjet printers.

## Table of contents

- 1 Overview
- 2 License
- 3 System Requirements
- 4 Driver Support
  - 4.1 Device Descriptions
  - 4.2 Paper Sizes
  - 4.3 Printable Area
- 5 Updates
- 6 Installation
  - 6.1 HP Inkjet Driver
  - 6.2 Ghostscript
  - 6.3 PrintTool
- 7 Usage
  - 7.1 Spooler Example
  - 7.2 Ghostscript Example
- 8 Project Development

## 1 Overview

The Hewlett-Packard Inkjet Driver Project (HPIJS) is a add-on printer driver for GNU Ghostscript. This driver is open source software based on the Hewlett-Packard Appliance Printing Development Kit APDK for deskjet printers. The driver will take RGB rasters from Ghostscript and converts them to printer-ready-bits.

Ghostscript uses a generalized IPC interface for HPIJS communications. This interface is called the IJS interface. The IJS interface, which was written by Raph Levien of Ghostscript, was inspired by the first HPIJS interface. The IJS interface can be used by any printer manufacturer.

There are two parts to the IJS interface - IJS client that resides in GNU Ghostscript and the IJS server. The IJS server is built into the printer driver, in our case the HP Inkjet driver. In this document the term IJS server, HPIJS server, HPIJS, or HP Inkjet Driver are all synonymous. They all refer to the same software component. HPIJS runs as a server or co-process to GNU Ghostscript. The server is spawned automatically by GNU Ghostscript. The following figure is a high level overview of the IJS interface between GNU Ghostscript and HPIJS.

GNU Ghostscript is a software application that interprets PostScript and displays the results on the screen or converts the PostScript into a form you can print on a non-PostScript printer.

PostScript is a programming language optimized for printing graphics and text, it is sometimes called a page description language. Most Linux applications support PostScript. Postscript is the standard for printing in any Linux or Unix environment.

Ghostscript supports many output devices, including many different printers. This document addresses how to build, install and use HPIJS with Ghostscript. This document is intended for distributions and experienced users. Other users should refer to their appropriate Linux distribution for HPIJS support.

Although HPIJS runs as a separate process from Ghostscript, HPIJS still looks like just another Ghostscript printer driver. Adding printer drivers is a well documented interface that is described in the GNU Ghostscript documentation at http://www.cs.wisc.edu/~ghost/doc/gnu/index.htm. Together with Ghostscript and HPIJS, PostScript can be converted to a printer language that is compatible with many of the latest HP printer products. See Installation on how to download and install HPIJS.

HPIJS supports both the new IJS interface and the old HPIJS interface. Support for the HPIJS interface is provided for backward compatibility only. All new features will be supported on the IJS interface only. This document only addresses how to use HPIJS using the IJS interface. The old HPIJS interface is defined in the HPIJS 0.97 release. More information on the IJS interface can be found at inkjet-list.

Ghostscript is not a gui application. Ghostscript is a command line application that runs from a Linux shell, similar to a Microsoft DOS command run from a DOS window.

Ghostscript can be used by itself to print to a non-Postscript printer, but generally a print spooler must be used. The print spooler must be configured to use Ghostscript when printing to a non-Postscript printer. Many Linux distributions all ready support HPIJS in their spooler system, see their web site for spooler support questions. Additional information is available at www.linuxprinting.org.

## 2 License

GNU Ghostscript uses the GNU General Public License (GPL) and the IJS interface uses the MIT License. After HPIJS 1.0.1 the driver uses a BSD license. HPIJS 1.0 and below uses a BSD type license with a "HP product only" clause.

## 3 System Requirements

HPIJS works with GNU Ghostscript 6.53 or higher. The HPIJS download includes all the necessary files to build the HP Inkjet Driver from source code. Since the current Ghostscript release now has built-in support for the IJS interface, no other Ghostscript files are necessary to run HPIJS.

HPIJS is platform-independent and works on many different Unix and Linux systems. In order to install HPIJS the download includes an automake/autoconf makefile. This portable build procedure requires an ANSI C compiler, ANSI C++ compiler and a POSIX compliant environment.

This version of HPIJS supports both the new IJS interface and the old HPIJS interface. HPIJS requires Ghostscript to support one of these two interfaces.

HPIJS 2.1 and higher requires libjpeg and libjpeg-devel support.

HPIJS emits standard file output. The output can be directed to a file or to the actual device via the parallel or USB port. Some all-in-one devices, such as OfficeJets require the HP Linux OfficeJet Driver (HPOJ). In this case HPIJS output is sent to HPOJ and then the data is passed to the actual device.

Many platforms (Red Hat, Mandrake, SUSE, Yellow Dog, FreeBSD, Debian, HPUX, AIX, etc) have been confirmed to work, please see those sites for more information.

## 4 Driver Support

There are currently more than 230 HP printer models supported with HPIJS. HP printer support is defined by the current Hewlett Packard Appliance Printing Development Kit APDK. See the APDK documentation at http://hpapdk.com for more information.

HPIJS supports all the current HP printer models with different Ghostscript command line parameters. Different printer models can be selected with the IEEE 1284 Manufacturer and Model strings. This information can come from the query of a printer over the parallel or usb port.

The following Ghostscript commands are required when using HPIJS.

      -sDEVICE=ijs
      -sIjsServer=hpijs
      -dIjsUseOutputFD
      -sDeviceManufacturer=x   (x equals: "HEWLETT-PACKARD", "HP", "APOLLO")
      -sDeviceModel=x          (x equals: "DESKJET 990", "DESKJET 670", etc...)

The following Ghostscript commands are optional when using HPIJS.

      -dDuplex=false -dTumble=false (none)
      -dDuplex=true  -dTumble=false (book)
      -dDuplex=true  -dTumble=true  (tablet)

      -sIjsParams="Quality:Quality=n,Quality:ColorMode=n,Quality:MediaType=n,
                   Quality:PenSet=n,Quality:FullBleed=n,PS:MediaPosition=n"

          Quality equals: 0=normal (default), 1=draft, 2=best, 3=hires, 4=fastdraft
          ColorMode equals: 0=grey_k, 1=grey_cmy, 2=color (default)
          MediaType equals: 0=plain (default), 1=premium, 2=photo
          PenSet equals: 0=black_pen, 1=color_pen, 2=both_pens, 3=mdl_pen, 4=mdl_both
          FullBleed equals: 0=no (default), 1=yes
          MediaPosition equals: 1=upper_tray, 4=lower_tray, 7=autoselect (default)

PenSet Definitions

      black_pen: only black pen in the printer
      color_pen: only color pen in the printer
      both_pens: black & color pens in printer
      mdl_pen: photo pen in the printer
      mdl_both: color pen and photo pen in printer

Note, there are defaults for all optional commands. PenSet default is defined by each device class.

The Quality, MediaType, ColorMode, PenSet and FullBleed are used to set the print mode. Not all combinations of Quality, MediaType, ColorMode, PenSet and FullBleed are valid print modes. If an invalid print mode is set, the job will still print, because HPIJS will default to a print mode that makes sense given the input. HPIJS will send any error message to stderr and syslog. Print modes are device class specific, see the following device descriptions for more details.

MediaPosition can be any valid PCL Media Source value. MediaPositon defaults to "autoselect" which means the printer will decide which tray to use. MediaPosition is recognized by DJ9xxVIP, DJGenericVIP and HP LaserJet only. All other device classes ignore this command.

#### 4.1 Device Descriptions

HPIJS is a monolithic driver that supports many different printers. Common printers are divided into different device classes. Each device class share common printer attributes such as print modes and paper sizes. HPIJS will automatically map the DeviceModel parameter to one of the devices classes.

The following devices classes are currently supported by HPIJS. Each device class support 300x300dpi unless specified otherwise. The DeviceModel parameters listed for each device class are case sensitive.

- DeskJet 350 series (DJ350) - The DJ350 device class only supports one pen at a time. Resolution setting 600x300 is required for Best Grayscale mode. The following options can be selected with Ghostscript commands.

         DeviceModel
           DESKJET 350

         Draft Grayscale
           Quality=1 ColorMode=0 MediaType=0 PenSet=0
         Draft Color
           Quality=1 ColorMode=2 MediaType=0 PenSet=1
         Normal Grayscale
           Quality=0 ColorMode=0 MediaType=0 PenSet=0
         Normal Color (default)
           Quality=0 ColorMode=2 MediaType=0 PenSet=1
         Best Grayscale
           Quality=2 ColorMode=0 MediaType=0 PenSet=0

- DeskJet 540 series (DJ540) - The DJ540 device class targets the DeskJet 540, but it should work for any DeskJet 500 and Deskjet 400 series. OfficeJet LX and OfficeJet Series 300 only support grayscale. This device class only supports one pen at a time. The following options can be selected with Ghostscript commands.

         DeviceModel
           DESKJET 540
           OfficeJet (OfficeJet LX)
           OfficeJet Series 300

         Draft Grayscale
           Quality=1 ColorMode=0 MediaType=0 PenSet=0
         Draft Color
           Quality=1 ColorMode=2 MediaType=0 PenSet=1
         Normal Grayscale
           Quality=0 ColorMode=0 MediaType=0 PenSet=0
         Normal Color (default)
           Quality=0 ColorMode=2 MediaType=0 PenSet=1

- DeskJet 630C series (DJ630) - The DJ630 device class will support single pen printing. Resolution setting 600x300 is required for Best Grayscale mode. The following options can be selected with Ghostscript commands.

         DeviceModel
           DESKJET 630
           DESKJET 632
           DESKJET 656

         Draft Grayscale
           Quality=1 ColorMode=0 MediaType=0 PenSet=0
         Draft Color
           Quality=1 ColorMode=2 MediaType=0 PenSet=1
           Quality=1 ColorMode=2 MediaType=0 PenSet=2
         Normal Grayscale
           Quality=0 ColorMode=0 MediaType=0 PenSet=0
         Normal Color
           Quality=0 ColorMode=2 MediaType=0 PenSet=1 (default)
           Quality=0 ColorMode=2 MediaType=0 PenSet=2
         Best Grayscale
           Quality=2 ColorMode=0 MediaType=0 PenSet=0
         Photo
           Quality=2 ColorMode=2 MediaType=1 PenSet=4

- DeskJet 600C series (DJ6xx) - Resolution setting 600x300 is required for Best Grayscale mode. The following options can be selected with Ghostscript commands.

         DeviceModel
           DESKJET 600
           DESKJET 660
           DESKJET 670
           DESKJET 672
           DESKJET 670
           DESKJET 680
           DESKJET 682
           e-printer e20
           OfficeJet Series 500
           OfficeJet Series 600
           OfficeJet Series 700
           Printer/Scanner/Copier 300

         Draft Grayscale
           Quality=1 ColorMode=0 MediaType=0 PenSet=2
         Draft Color
           Quality=1 ColorMode=2 MediaType=0 PenSet=2
         Normal Grayscale
           Quality=0 ColorMode=0 MediaType=0 PenSet=2
         Normal Color (default)
           Quality=0 ColorMode=2 MediaType=0 PenSet=2
         Best Grayscale
           Quality=2 ColorMode=0 MediaType=0 PenSet=2

- DeskJet 600C series photo (DJ6xxPhoto) - Resolution setting 600x300 is required for Best Grayscale mode. The following options can be selected with Ghostscript commands.

         DeviceModel
           DESKJET 610
           DESKJET 612
           DESKJET 640
           DESKJET 648
           DESKJET 690
           DESKJET 692
           DESKJET 693
           DESKJET 694
           DESKJET 695
           DESKJET 697

         Draft Grayscale
           Quality=1 ColorMode=0 MediaType=0 PenSet=2
         Draft Color
           Quality=1 ColorMode=2 MediaType=0 PenSet=2
         Normal Grayscale
           Quality=0 ColorMode=0 MediaType=0 PenSet=2
         Normal Color (default)
           Quality=0 ColorMode=2 MediaType=0 PenSet=2
         Best Grayscale
           Quality=2 ColorMode=0 MediaType=0 PenSet=2
         Photo
           Quality=2 ColorMode=2 MediaType=1 PenSet=4

- DeskJet 800C series (DJ8xx) - Resolution setting 600x600 is available for Normal Grayscale and Photo modes. The following options can be selected with Ghostscript commands.

         DeviceModel
           DESKJET 810
           DESKJET 812
           DESKJET 815
           DESKJET 816
           DESKJET 830
           DESKJET 832
           DESKJET 840
           DESKJET 842
           DESKJET 880
           DESKJET 882
           DESKJET 895
           OFFICEJET R
           OfficeJet T
           PSC 500

         Draft Grayscale
           Quality=1 ColorMode=0 MediaType=0 PenSet=2
         Draft Color
           Quality=1 ColorMode=2 MediaType=0 PenSet=2
         Normal Grayscale
           Quality=0 ColorMode=0 MediaType=0 PenSet=2
         Normal Color (default)
           Quality=0 ColorMode=2 MediaType=0 PenSet=2
         Photo
           Quality=2 ColorMode=2 MediaType=2 PenSet=2

- Deskjet 825 series (DJ8x5) - Resolution setting 600x600 is available for Normal Grayscale and Photo modes. The following options can be selected with Ghostscript commands.

         DeviceModel
           DESKJET 825
           DESKJET 845

         Draft Grayscale
           Quality=1 ColorMode=0 MediaType=0 PenSet=0
         Draft Color
           Quality=1 ColorMode=2 MediaType=0 PenSet=1
           Quality=1 ColorMode=2 MediaType=0 PenSet=2
         Normal Grayscale
           Quality=0 ColorMode=0 MediaType=0 PenSet=0
         Normal Color
           Quality=0 ColorMode=2 MediaType=0 PenSet=1 (default)
           Quality=0 ColorMode=2 MediaType=0 PenSet=2
         Photo
           Quality=2 ColorMode=2 MediaType=2 PenSet=1
           Quality=2 ColorMode=2 MediaType=2 PenSet=2

- DeskJet 850C series (DJ850) - Resolution setting 600x600 is available for Normal Grayscale mode. The following options can be selected with Ghostscript commands.

         DeviceModel
           DESKJET 850
           DESKJET 855
           DESKJET 870
           OFFICEJET PRO 1150

         Draft Grayscale
           Quality=1 ColorMode=0 MediaType=0 PenSet=2
         Draft Color
           Quality=1 ColorMode=2 MediaType=0 PenSet=2
         Normal Grayscale
           Quality=0 ColorMode=0 MediaType=0 PenSet=2
         Normal Color (default)
           Quality=0 ColorMode=2 MediaType=0 PenSet=2

- DeskJet 890C series (DJ890) - Resolution setting 600x600 is available for Normal Grayscale mode. The following options can be selected with Ghostscript commands.

         DeviceModel
           DESKJET 890
           OFFICEJET PRO 1170/1175

         Draft Grayscale
           Quality=1 ColorMode=0 MediaType=0 PenSet=2
         Draft Color
           Quality=1 ColorMode=2 MediaType=0 PenSet=2
         Normal Grayscale
           Quality=0 ColorMode=0 MediaType=0 PenSet=2
         Normal Color (default)
           Quality=0 ColorMode=2 MediaType=0 PenSet=2

- DeskJet 900C series (DJ9xx) - For the DJ9xx device class, HiRes is another photo mode which supports 1200x1200 dpi. Resolution setting 600x600 is available for Normal Grayscale, Best Color and Photo modes. Resolution setting 1200x1200 is available for HiRes mode.

  Duplex printing is supported. Duplex is not available in Photo mode or HiRes.

  Note, the Deskjet 1120/1125 series does not suport Best Color, Photo or HiRes modes.

  The following options can be selected with Ghostscript commands.

         DeviceModel
           DESKJET 916
           DESKJET 920
           DESKJET 930
           DESKJET 932
           DESKJET 940
           DESKJET 948
           DESKJET 950
           DESKJET 952
           DESKJET 957
           DESKJET 959
           DESKJET 970
           DESKJET 975
           DESKJET 1120
           DESKJET 1125
           DESKJET 1220
           DESKJET 3810
           DESKJET 3816
           DESKJET 3820
           DESKJET 3822
           hp deskjet 9300
           PHOTOSMART P1000
           PHOTOSMART P1100
           OfficeJet K
           OfficeJet V
           OfficeJet G
           officejet 5100 series
           PSC 750
           PSC 900

         Draft Grayscale
           Quality=1 ColorMode=0 MediaType=0 PenSet=2
         Draft Color
           Quality=1 ColorMode=2 MediaType=0 PenSet=2
         Normal Grayscale
           Quality=0 ColorMode=0 MediaType=0 PenSet=2
         Normal Color (default)
           Quality=0 ColorMode=2 MediaType=0 PenSet=2
         Best Color
           Quality=2 ColorMode=2 MediaType=0 PenSet=2
         Photo
           Quality=2 ColorMode=2 MediaType=2 PenSet=2
         HiRes
           Quality=3 ColorMode=2 MediaType=2 PenSet=2

- DeskJet 990C series (DJ9xxVIP) - In Draft and Normal modes the DJ9xxVIP device class will detect photo paper and automatically print in Photo mode. HiRes is another photo mode which supports the maximum resolution of the printer. HiRes mode does not do auto media detection. Resolution setting 600x600 is available for Normal modes. Resolution setting 1200x1200 is available for HiRes mode.

  Duplex printing is supported. Duplex is not available in HiRes mode.

  Note, the HP Business Inkjet 2200 series does not support HiRes mode and auto media detection. Photo mode was added for these printers.

  The following options can be selected with Ghostscript commands.

         DeviceModel
           DESKJET 960
           DESKJET 980
           DESKJET 990
           DESKJET 995
           deskjet 6122
           deskjet 6127
           PHOTOSMART 1115
           PHOTOSMART 1215
           PHOTOSMART 1218
           PHOTOSMART 1315
           cp1160
           HP Color Inkjet CP1700
           HP BUSINESS INKJET 2200
           HP BUSINESS INKJET 2230
           HP BUSINESS INKJET 2250
           HP BUSINESS INKJET 2280
           officejet d
           officejet 7100

         Draft Grayscale
           Quality=1 ColorMode=0 MediaType=0 PenSet=2
         Draft Color
           Quality=1 ColorMode=2 MediaType=0 PenSet=2
         Normal Grayscale
           Quality=0 ColorMode=0 MediaType=0 PenSet=2
         Normal Color (default)
           Quality=0 ColorMode=2 MediaType=0 PenSet=2
         Photo
           Quality=2 ColorMode=2 MediaType=2 PenSet=2
         HiRes
           Quality=3 ColorMode=2 MediaType=2 PenSet=2

- DeskJet 3320 series (DJ3320) - The DJ3320 device class will support single pen printing. Resolution setting 600x600 is available for Normal and Photo modes.

  The 3320 series handles pen alignment parameters differently than normal HP inkjet printers. Most inkjets store pen alignment parameters in the printer and any pen alignment values would be used by printer firmware. For the 3320 pen alignment parameters are stored in the printer, but any pen alignment would be performed by the device class.

  Currently the DJ3320 device class does not use pen alignment parameters stored in the printer. This could be a issue with two pen color print modes - Draft Color and Normal Color (KCMY). This is not a problem for two pen Photo mode (mostly CMY).

  If there are pen alignment issues with two pen color printing, use a single pen color print mode (ie: PenSet=1). We are currently evaluating pen alignment options and expect to address this issue in a future release (update: this issue has be resolved with bi-di support in 2.0).

  The following options can be selected with Ghostscript commands.

         DeviceModel
           deskjet 3320
           deskjet 3420
           deskjet 3425
           deskjet 3500
           officejet 4100
           officejet 4200
           psc 1100 series
           psc 1200 series

         Draft Grayscale
           Quality=1 ColorMode=0 MediaType=0 PenSet=0
         Draft Color
           Quality=1 ColorMode=2 MediaType=0 PenSet=1
           Quality=1 ColorMode=2 MediaType=0 PenSet=2
         Normal Grayscale
           Quality=0 ColorMode=0 MediaType=0 PenSet=0
         Normal Color
           Quality=0 ColorMode=2 MediaType=0 PenSet=1
           Quality=0 ColorMode=2 MediaType=0 PenSet=2	(default)
         Photo
           Quality=2 ColorMode=2 MediaType=2 PenSet=1
           Quality=2 ColorMode=2 MediaType=2 PenSet=2

- DeskJet 3600 series (DJ3600) - The DJ3600 device class supports full bleed (borderless) printing. DJ3600 is backward compatable with DJ3320. This means all DJ3320 caveats apply to DJ3600. Resolution setting 600x600 is available for Normal and Photo modes. The photo pen is also supported.

  Full bleed support is paper size specific. Full bleed is only available for paper sizes Oufuku-Hagaki or smaller.

  The following options can be selected with Ghostscript commands.

         DeviceModel
           deskjet 3600
           officejet 5500
           psc 1300
           psc 1310

         Draft Grayscale
           Quality=1 ColorMode=0 MediaType=0 PenSet=0
         Draft Color
           Quality=1 ColorMode=2 MediaType=0 PenSet=1
           Quality=1 ColorMode=2 MediaType=0 PenSet=2
         Normal Grayscale
           Quality=0 ColorMode=0 MediaType=0 PenSet=0
         Normal Color
           Quality=0 ColorMode=2 MediaType=0 PenSet=1
           Quality=0 ColorMode=2 MediaType=0 PenSet=2	(default)
         Photo
           Quality=2 ColorMode=2 MediaType=2 PenSet=1
           Quality=2 ColorMode=2 MediaType=2 PenSet=2
           Quality=2 ColorMode=2 MediaType=2 PenSet=4

- DeskJet 5550 series (DJGenericVIP) - The DJGenericVIP device class supports full bleed (borderless) printing. Single pen printing is supported, but this is independent of the driver. DJGenericVIP is backward compatable with DJ9xxVIP.

  In Draft and Normal modes the DJGenericVIP device class will detect photo paper and automatically print in Photo mode. HiRes is another photo mode which supports the maximum resolution of the printer. HiRes mode does not do auto media detection. Resolution setting 600x600 is available for Normal modes. Resolution setting 1200x1200 is available for HiRes mode.

  Duplex printing is supported. Duplex is not available in HiRes mode.

  Note, the Deskjet 450 does not support auto media detection and full bleed. Use Photo or HiRes mode for photo media.

  The HP Business Inkjet 1100/1200 do not support full bleed.

  On older printers full bleed support is paper size specific and is only available for paper sizes Oufuku-Hagaki or smaller.

  Current full bleed support is 3-sided. We are currently evaluating 4-sided large paper size or smaller full bleed support (ie: Deskjet 5100/5600) and expect to address this issue in a future release (update: this issue has be resolved with bi-di support in 2.0).

  Some newer printers support a FastDraft printmode that prints at 300x300 resolution. The Draft Color and Draft Grayscale modes produce higher quality output than FastDraft. Those printers in this class that do not support a FastDraft mode will exhibit no difference in FastDraft and the regular Draft modes.

  The following options can be selected with Ghostscript commands.

         DeviceModel
           dj450
           deskjet 5100
           deskjet 5550
           deskjet 5551
           deskjet 5600
           deskjet 5800
           deskjet 9600
           Photosmart 320
           Photosmart 330
           Photosmart 370
           Photosmart 380
           photosmart 7150
           photosmart 7260
           photosmart 7268
           photosmart 7345
           photosmart 7350
           photosmart 7550
           photosmart 7660
           photosmart 7760
           photosmart 7960
           OfficeJet 6100
           OfficeJet 6150
           PSC 2100
           PSC 2150
           PSC 2170
           PSC 2200
           psc 2300
           psc 2400
           psc 2500
           hp business inkjet 1100
           HP Business Inkjet 1200

         FastDraft Grayscale
           Quality=4 ColorMode=0 MediaType=0 PenSet=2
         Draft Grayscale
           Quality=1 ColorMode=0 MediaType=0 PenSet=2
         FastDraft Color
           Quality=4 ColorMode=2 MediaType=0 PenSet=2
         Draft Color
           Quality=1 ColorMode=2 MediaType=0 PenSet=2
         Normal Grayscale
           Quality=0 ColorMode=0 MediaType=0 PenSet=2
         Normal Color (default)
           Quality=0 ColorMode=2 MediaType=0 PenSet=2
         Photo
           Quality=2 ColorMode=2 MediaType=2 PenSet=2
         HiRes
           Quality=3 ColorMode=2 MediaType=2 PenSet=2

- Apollo 2000 series (AP2xxx) - The AP2xxx device class will support single color pen printing. Resolution setting 600x300 is required for Best Grayscale mode. The following options can be selected with Ghostscript commands.

         DeviceModel
           APOLLO P-22 (Apollo 2200/2250)

         Draft Grayscale
           Quality=1 ColorMode=0 MediaType=0 PenSet=2
         Draft Color
           Quality=1 ColorMode=2 MediaType=0 PenSet=1
           Quality=1 ColorMode=2 MediaType=0 PenSet=2
         Normal Grayscale
           Quality=0 ColorMode=0 MediaType=0 PenSet=2
         Normal Color
           Quality=0 ColorMode=2 MediaType=0 PenSet=1	(default)
           Quality=0 ColorMode=2 MediaType=0 PenSet=2
         Best Grayscale
           Quality=2 ColorMode=0 MediaType=0 PenSet=2
         Photo
           Quality=2 ColorMode=2 MediaType=1 PenSet=4

- Apollo 2100 series (AP21xx) - The AP21xx device class will support single color pen printing. Resolution setting 600x300 is required for Best Grayscale mode. The following options can be selected with Ghostscript commands.

         DeviceModel
           P-2000U (Apollo 2100/2150)

         Draft Grayscale
           Quality=1 ColorMode=0 MediaType=0 PenSet=2
         Draft Color
           Quality=1 ColorMode=2 MediaType=0 PenSet=1
           Quality=1 ColorMode=2 MediaType=0 PenSet=2
         Normal Grayscale
           Quality=0 ColorMode=0 MediaType=0 PenSet=2
         Normal Color
           Quality=0 ColorMode=2 MediaType=0 PenSet=1	(default)
           Quality=0 ColorMode=2 MediaType=0 PenSet=2
         Best Grayscale
           Quality=2 ColorMode=0 MediaType=0 PenSet=2
         Photo
           Quality=2 ColorMode=2 MediaType=1 PenSet=4

- Apollo 2560 series (AP2560) - The AP2560 device class will support single color pen printing. Resolution setting 600x300 is required for Best Grayscale mode. The following options can be selected with Ghostscript commands.

         DeviceModel
           APOLLO P2500/2600

         Draft Grayscale
           Quality=1 ColorMode=0 MediaType=0 PenSet=2
         Draft Color
           Quality=1 ColorMode=2 MediaType=0 PenSet=1
           Quality=1 ColorMode=2 MediaType=0 PenSet=2
         Normal Grayscale
           Quality=0 ColorMode=0 MediaType=0 PenSet=2
         Normal Color
           Quality=0 ColorMode=2 MediaType=0 PenSet=1	(default)
           Quality=0 ColorMode=2 MediaType=0 PenSet=2
         Best Grayscale
           Quality=2 ColorMode=0 MediaType=0 PenSet=2
         Photo
           Quality=2 ColorMode=2 MediaType=1 PenSet=4

- Photosmart 100 series (PS100) - The PS100 device class supports full bleed (borderless) photo printing and only uses the color pen. In Normal mode the 100 series printers will detect photo paper and automatically print in Photo mode. HiRes is another photo mode which supports the maximum resolution of the printer. HiRes mode does not do auto media detection like Normal mode. Resolution setting 600x600 is available for Normal mode. Resolution setting 1200x1200 is available for HiRes mode.

  The following options can be selected with Ghostscript commands.

         DeviceModel
           PHOTOSMART 100
           PHOTOSMART 130
           photosmart 140
           PHOTOSMART 230
           photosmart 240

         Normal (default)
           Quality=0 ColorMode=2 MediaType=0 PenSet=1 FullBleed=1
         HiRes
           Quality=3 ColorMode=2 MediaType=2 PenSet=1 FullBleed=1

- LaserJet Monochrome series (LJMono) - This device class provides PCL monochrome support for HP LaserJets. The LJMono device class targets PCL only HP LaserJets, but it should work on all HP LaserJets that support PCL.

  The paper input tray can be selected with the MediaPosition command. Duplex printing is supported.

  Resolution setting 600x600 is available for Normal mode.

  The following options can be selected with Ghostscript commands.

         DeviceModel
           hp LaserJet 1015
           HP LaserJet 1100
           hp LaserJet 1150
           HP LaserJet 2100
           HP LaserJet 4
           HP LaserJet 5
           HP LaserJet 6
           HP LaserJet 3200

         Draft
           Quality=1 ColorMode=0 MediaType=0 PenSet=0
         Normal (default)
           Quality=0 ColorMode=0 MediaType=0 PenSet=0

- LaserJet Color series (LJColor) - This device class provides PCL color HP LaserJet support. The LJColor device class targets PCL only HP LaserJets, but it should work on all HP Color LaserJets that support PCL.

  The paper input tray can be selected with the MediaPosition command. Duplex printing is supported.

  Maximum resolution setting for Draft Color is 150x150. Resolution setting 600x600 is available for Normal Grayscale and Best Color modes.

  The following options can be selected with Ghostscript commands.

         DeviceModel
           hp color LaserJet 5500
           hp business inkjet 2300
           hp business inkjet 3000
           hp officejet 9100

         Draft Grayscale
           Quality=1 ColorMode=0 MediaType=0 PenSet=2
         Draft Color
           Quality=1 ColorMode=2 MediaType=0 PenSet=2
         Normal Grayscale
           Quality=0 ColorMode=0 MediaType=0 PenSet=2
         Normal Color (default)
           Quality=0 ColorMode=2 MediaType=0 PenSet=2
         Best Color
           Quality=2 ColorMode=2 MediaType=0 PenSet=2

- LaserJet Monochrome series (LJFastRaster) - This device class provides host based monochrome support (pseudo PCL) for HP LaserJets.

  Only Resolution setting 600x600 is available.

  The following options can be selected with Ghostscript commands.

         DeviceModel
           hp LaserJet 1010
           hp LaserJet 1012

         Draft
           Quality=1 ColorMode=0 MediaType=0 PenSet=0
         Normal (default)
           Quality=0 ColorMode=0 MediaType=0 PenSet=0

- LaserJet Color series (LJJetReady) - This device class provides host based color support (pseudo PCL) for HP LaserJets. The LJJetReady device class requires libjpeg for compression.

  Only Resolution setting 600x600 is available.

  The following options can be selected with Ghostscript commands.

         DeviceModel
           hp color LaserJet 3500
           hp color LaserJet 3550

         Normal Grayscale
           Quality=0 ColorMode=0 MediaType=0 PenSet=2
         Normal Color (default)
           Quality=0 ColorMode=2 MediaType=0 PenSet=2

Note, the DeviceModel parameters listed above for each device class are not the full Model string returned by a IEEE 1284 Device ID query. When HPIJS maps the DeviceModel to a device class, the match is wild-carded and trailing characters are ignored.

For example, a Device ID query on a Deskjet 990Cxi will return "DESKJET 990C". If DeviceModel="DESKJET 990C", HPIJS will match to "DESKJET 99", ignore the "0C" and select the DJ9xxVIP device class. See the proxy table for each device class (ie: dj9xxvip.cpp) for a list of model strings and how they are wild-carded.

#### 4.2 Paper Sizes

For device classes that support PCL encapsulation, the paper size command is determined automatically. HPIJS selects the paper size based on the physical paper size set by Ghostscript. The following standard paper sizes are supported by HPIJS.

                                  inches:      postscript units:
      1. Letter                  8.5 x 11          612 x 792
      2. Legal                   8.5 x 14          612 x 1008
      3. Ledger                   11 x 17          792 x 1224
      4. Executive              7.25 x 10.5        522 x 756
      5. A3                    11.69 x 16.53       842 x 1190
      6. A4                     8.27 x 11.69       595 x 842
      7. A5                     5.83 x 8.27        420 x 595
      8. A6                     4.13 x 5.83        297 x 420
      9. Photo                     4 x 6           288 x 432
     10. B4                   10.126 x 14.342      729 x 1033
     11. B5                     7.17 x 10.126      516 x 729
     12. Oufuku-Hagaki          5.83 x 7.87        420 x 567
     13. Hagaki                 3.94 x 5.83        284 x 420
     14. Super B                  13 x 19          936 x 1368
     15. Flsa                    8.5 x 13          612 x 936
     16. Number 10 Envelope     4.12 x 9.5         297 x 684
     17. A2 Envelope            4.37 x 5.75        315 x 414
     18. C6 Envelope            4.49 x 6.38        323 x 459
     19. DL Envelope            4.33 x 8.66        312 x 624
     20. Japanese Envelope #3   4.72 x 9.25        340 x 666
     21. Japanese Envelope #4   3.54 x 8.07        255 x 581

If the paper size is not one of the above standard papers sizes HPIJS will default to a custom paper size. Most printers are capable of printing custom-sized media of any dimension provided it conforms to the minimum and maximum paper size definition in the product specification. For example on a Deskjet 990, the minimum paper size is 3x5 inches and the maximum paper size is 8.5x14 inches.

All device classes support custom papers sizes. Although HPIJS does not explicitly support the following printer models, custom-sized media are not supported on - DJ340, DJ500, DJ500C, DJ510, DJ520, DJ550C and DJ560C.

#### 4.3 Printable Area

Printable area or margins are device class and print mode dependent. For example inkjet products, when Duplex mode is set the top margin is set to 1/2 inch. Normally the top margin is 1/8 inch. Laserjet products do not have different margins during duplex. Printers that support full bleed will require a slightly oversize printable width and height to account for over spray and paper skew.

The printable area values are available over the IJS interface. Ghostscript uses this data during postscript to raster conversion.

The following table lists the physical printable area for all paper sizes supported by HPIJS. Custom (8.5 x 12) is a custom paper size example.

Device Class | Paper (inches) | Normal | Duplex | Full Bleed
Left | Top | Width | Height | Left | Top | Width | Height | Left | Top | Width | Height
DJ350 DJ540 DJ630 DJ6xx DJ6xxPhoto AP2xxx AP21xx AP2560 | Letter (8.5x11) | 0.25 | 0.125 | 8 | 10.205 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a
| A4 (8.27x11.69) | 0.135 | 0.125 | 8 | 10.895 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | Legal (8.5x14) | 0.25 | 0.125 | 8 | 13.205 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | Photo (4x6) | 0.25 | 0.125 | 3.5 | 5.205 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | A6 (4.13x5.83) | 0.25 | 0.125 | 3.63 | 5.035 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | B4 (10.126x14.342) | 0.25 | 0.125 | 9.626 | 13.547 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | B5 (7.17x10.126) | 0.25 | 0.125 | 6.67 | 9.331 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | Oufuku-Hagaki (5.83x7.87) | 0.25 | 0.125 | 5.33 | 7.075 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | Hagaki (3.94x5.83) | 0.25 | 0.125 | 3.44 | 5.035 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | A3 (11.69x16.53) | 0.25 | 0.125 | 11.19 | 15.735 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | A5 (5.83x8.27) | 0.25 | 0.125 | 5.33 | 7.475 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | Ledger (11x17) | 0.25 | 0.125 | 10.5 | 16.205 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | Super B (13x19) | 0.25 | 0.125 | 12.5 | 18.205 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | Executive (7.25x10.5) | 0.25 | 0.125 | 6.75 | 9.705 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | Flsa (8.5x13) | 0.25 | 0.125 | 8 | 12.205 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | Custom (8.5x12) | 0.25 | 0.125 | 8 | 11.205 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | Number 10 Envelope (4.12x9.5) | 0.25 | 0.125 | 3.62 | 8.705 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | A2 Envelope (4.37x5.75) | 0.25 | 0.125 | 3.87 | 4.955 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | C6 Envelope (4.49x6.38) | 0.25 | 0.125 | 3.99 | 5.585 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | DL Envelope (4.33x8.66) | 0.25 | 0.125 | 3.83 | 7.865 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | Japanese Envelope #3 (4.72x9.25) | 0.25 | 0.125 | 4.22 | 8.455 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | Japanese Envelope #4 (3.54x8.07) | 0.25 | 0.125 | 3.04 | 7.275 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a
DJ8xx DJ8x5 DJ850 DJ890 DJ3320 | Letter (8.5x11) | 0.25 | 0.125 | 8 | 10.375 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a
| A4 (8.27x11.69) | 0.135 | 0.125 | 8 | 11.065 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | Legal (8.5x14) | 0.25 | 0.125 | 8 | 13.375 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | Photo (4x6) | 0.125 | 0.125 | 3.75 | 5.75 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | A6 (4.13x5.83) | 0.125 | 0.125 | 3.88 | 5.205 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | B4 (10.126x14.342) | 0.25 | 0.125 | 9.626 | 13.717 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | B5 (7.17x10.126) | 0.25 | 0.125 | 6.67 | 9.5 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | Oufuku-Hagaki (5.83x7.87) | 0.25 | 0.125 | 5.33 | 7.37 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | Hagaki (3.94x5.83) | 0.125 | 0.125 | 3.69 | 5.58 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | A3 (11.69x16.53) | 0.2 | 0.125 | 11.29 | 15.905 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | A5 (5.83x8.27) | 0.125 | 0.125 | 5.58 | 7.645 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | Ledger (11x17) | 0.2 | 0.125 | 10.6 | 16.375 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | Super B (13x19) | 0.2 | 0.125 | 12.6 | 18.375 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | Executive (7.25x10.5) | 0.25 | 0.125 | 6.75 | 9.875 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | Flsa (8.5x13) | 0.25 | 0.125 | 8 | 12.375 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | Custom (8.5x12) | 0.25 | 0.125 | 8 | 11.375 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | Number 10 Envelope (4.12x9.5) | 0.1225 | 0.125 | 3.875 | 8.875 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | A2 Envelope (4.37x5.75) | 0.125 | 0.125 | 4.12 | 5.125 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | C6 Envelope (4.49x6.38) | 0.125 | 0.125 | 4.24 | 5.755 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | DL Envelope (4.33x8.66) | 0.125 | 0.125 | 4.08 | 8.035 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | Japanese Envelope #3 (4.72x9.25) | 0.125 | 0.125 | 4.47 | 8.625 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | Japanese Envelope #4 (3.54x8.07) | 0.125 | 0.125 | 3.29 | 7.445 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a
DJ9xx DJ9xxVIP | Letter (8.5x11) | 0.25 | 0.125 | 8 | 10.375 | 0.25 | 0.5 | 8 | 10 | n/a | n/a | n/a | n/a
| A4 (8.27x11.69) | 0.135 | 0.125 | 8 | 11.065 | 0.135 | 0.5 | 8 | 10.69 | n/a | n/a | n/a | n/a | Legal (8.5x14) | 0.25 | 0.125 | 8 | 13.375 | 0.25 | 0.5 | 8 | 13 | n/a | n/a | n/a | n/a | Photo (4x6) | 0.125 | 0.125 | 3.75 | 5.75 | 0.125 | 0.5 | 3.75 | 5 | n/a | n/a | n/a | n/a | A6 (4.13x5.83) | 0.125 | 0.125 | 3.88 | 5.205 | 0.125 | 0.5 | 3.88 | 4.83 | n/a | n/a | n/a | n/a | B4 (10.126x14.342) | 0.25 | 0.125 | 9.626 | 13.717 | 0.25 | 0.5 | 9.626 | 13.342 | n/a | n/a | n/a | n/a | B5 (7.17x10.126) | 0.25 | 0.125 | 6.67 | 9.5 | 0.25 | 0.5 | 6.67 | 9.126 | n/a | n/a | n/a | n/a | Oufuku-Hagaki (5.83x7.87) | 0.25 | 0.125 | 5.33 | 7.37 | 0.25 | 0.5 | 5.33 | 6.87 | n/a | n/a | n/a | n/a | Hagaki (3.94x5.83) | 0.125 | 0.125 | 3.69 | 5.58 | 0.125 | 0.5 | 3.69 | 4.83 | n/a | n/a | n/a | n/a | A3 (11.69x16.53) | 0.2 | 0.125 | 11.29 | 15.905 | 0.2 | 0.5 | 11.29 | 15.53 | n/a | n/a | n/a | n/a | A5 (5.83x8.27) | 0.125 | 0.125 | 5.58 | 7.645 | 0.125 | 0.5 | 5.58 | 7.27 | n/a | n/a | n/a | n/a | Ledger (11x17) | 0.2 | 0.125 | 10.6 | 16.375 | 0.2 | 0.5 | 10.6 | 16 | n/a | n/a | n/a | n/a | Super B (13x19) | 0.2 | 0.125 | 12.6 | 18.375 | 0.2 | 0.5 | 12.6 | 18 | n/a | n/a | n/a | n/a | Executive (7.25x10.5) | 0.25 | 0.125 | 6.75 | 9.875 | 0.25 | 0.5 | 6.75 | 9.5 | n/a | n/a | n/a | n/a | Flsa (8.5x13) | 0.25 | 0.125 | 8 | 12.375 | 0.25 | 0.5 | 8 | 12 | n/a | n/a | n/a | n/a | Custom (8.5x12) | 0.25 | 0.125 | 8 | 11.375 | 0.25 | 0.5 | 8 | 11 | n/a | n/a | n/a | n/a | Number 10 Envelope (4.12x9.5) | 0.1225 | 0.125 | 3.875 | 8.875 | 0.1225 | 0.5 | 3.875 | 8.5 | n/a | n/a | n/a | n/a | A2 Envelope (4.37x5.75) | 0.125 | 0.125 | 4.12 | 5.125 | 0.125 | 0.5 | 4.12 | 4.75 | n/a | n/a | n/a | n/a | C6 Envelope (4.49x6.38) | 0.125 | 0.125 | 4.24 | 5.755 | 0.125 | 0.5 | 4.24 | 5.38 | n/a | n/a | n/a | n/a | DL Envelope (4.33x8.66) | 0.125 | 0.125 | 4.08 | 8.035 | 0.125 | 0.5 | 4.08 | 7.66 | n/a | n/a | n/a | n/a | Japanese Envelope #3 (4.72x9.25) | 0.125 | 0.125 | 4.47 | 8.625 | 0.125 | 0.5 | 4.47 | 8.25 | n/a | n/a | n/a | n/a | Japanese Envelope #4 (3.54x8.07) | 0.125 | 0.125 | 3.29 | 7.445 | 0.125 | 0.5 | 3.29 | 7.07 | n/a | n/a | n/a | n/a
DJ3600 | Letter (8.5x11) | 0.25 | 0.125 | 8 | 10.375 | n/a | n/a | n/a | n/a | 0.25 | 0.125 | 8 | 10.375
| A4 (8.27x11.69) | 0.135 | 0.125 | 8 | 11.065 | n/a | n/a | n/a | n/a | 0.135 | 0.125 | 8 | 11.065 | Legal (8.5x14) | 0.25 | 0.125 | 8 | 13.375 | n/a | n/a | n/a | n/a | 0.25 | 0.125 | 8 | 13.375 | Photo (4x6) | 0.125 | 0.125 | 3.75 | 5.75 | n/a | n/a | n/a | n/a | 0 | 0 | 4.216 | 6.174 | A6 (4.13x5.83) | 0.125 | 0.125 | 3.88 | 5.205 | n/a | n/a | n/a | n/a | 0 | 0 | 4.346 | 5.33 | B4 (10.126x14.342) | 0.25 | 0.125 | 9.626 | 13.717 | n/a | n/a | n/a | n/a | 0.25 | 0.125 | 9.626 | 13.717 | B5 (7.17x10.126) | 0.25 | 0.125 | 6.67 | 9.5 | n/a | n/a | n/a | n/a | 0.25 | 0.125 | 6.67 | 9.5 | Oufuku-Hagaki (5.83x7.87) | 0.25 | 0.125 | 5.33 | 7.37 | n/a | n/a | n/a | n/a | 0 | 0 | 6.046 | 7.37 | Hagaki (3.94x5.83) | 0.125 | 0.125 | 3.69 | 5.58 | n/a | n/a | n/a | n/a | 0 | 0 | 4.156 | 5.33 | A3 (11.69x16.53) | 0.2 | 0.125 | 11.29 | 15.905 | n/a | n/a | n/a | n/a | 0.2 | 0.125 | 11.29 | 15.905 | A5 (5.83x8.27) | 0.125 | 0.125 | 5.58 | 7.645 | n/a | n/a | n/a | n/a | 0.125 | 0.125 | 5.58 | 7.645 | Ledger (11x17) | 0.2 | 0.125 | 10.6 | 16.375 | n/a | n/a | n/a | n/a | 0.2 | 0.125 | 10.6 | 16.375 | Super B (13x19) | 0.2 | 0.125 | 12.6 | 18.375 | n/a | n/a | n/a | n/a | 0.2 | 0.125 | 12.6 | 18.375 | Executive (7.25x10.5) | 0.25 | 0.125 | 6.75 | 9.875 | n/a | n/a | n/a | n/a | 0.25 | 0.125 | 6.75 | 9.875 | Flsa (8.5x13) | 0.25 | 0.125 | 8 | 12.375 | n/a | n/a | n/a | n/a | 0.25 | 0.125 | 8 | 12.375 | Custom (8.5x12) | 0.25 | 0.125 | 8 | 11.375 | n/a | n/a | n/a | n/a | 0.25 | 0.125 | 8 | 11.375 | Number 10 Envelope (4.12x9.5) | 0.1225 | 0.125 | 3.875 | 8.875 | n/a | n/a | n/a | n/a | 0.1225 | 0.125 | 3.875 | 8.875 | A2 Envelope (4.37x5.75) | 0.125 | 0.125 | 4.12 | 5.125 | n/a | n/a | n/a | n/a | 0.125 | 0.125 | 4.12 | 5.125 | C6 Envelope (4.49x6.38) | 0.125 | 0.125 | 4.24 | 5.755 | n/a | n/a | n/a | n/a | 0.125 | 0.125 | 4.24 | 5.755 | DL Envelope (4.33x8.66) | 0.125 | 0.125 | 4.08 | 8.035 | n/a | n/a | n/a | n/a | 0.125 | 0.125 | 4.08 | 8.035 | Japanese Envelope #3 (4.72x9.25) | 0.125 | 0.125 | 4.47 | 8.625 | n/a | n/a | n/a | n/a | 0.125 | 0.125 | 4.47 | 8.625 | Japanese Envelope #4 (3.54x8.07) | 0.125 | 0.125 | 3.29 | 7.445 | n/a | n/a | n/a | n/a | 0.125 | 0.125 | 3.29 | 7.445
DJGenericVIP | Letter (8.5x11) | 0.25 | 0.125 | 8 | 10.375 | 0.25 | 0.5 | 8 | 10 | 0.25 | 0.125 | 8 | 10.375
| A4 (8.27x11.69) | 0.135 | 0.125 | 8 | 11.065 | 0.135 | 0.5 | 8 | 10.69 | 0.135 | 0.125 | 8 | 11.065 | Legal (8.5x14) | 0.25 | 0.125 | 8 | 13.375 | 0.25 | 0.5 | 8 | 13 | 0.25 | 0.125 | 8 | 13.375 | Photo (4x6) | 0.125 | 0.125 | 3.75 | 5.75 | 0.125 | 0.5 | 3.75 | 5 | 0 | 0 | 4.12 | 6.06 | A6 (4.13x5.83) | 0.125 | 0.125 | 3.88 | 5.205 | 0.125 | 0.5 | 3.88 | 4.83 | 0 | 0 | 4.25 | 5.33 | B4 (10.126x14.342) | 0.25 | 0.125 | 9.626 | 13.717 | 0.25 | 0.5 | 9.626 | 13.342 | 0.25 | 0.125 | 9.626 | 13.717 | B5 (7.17x10.126) | 0.25 | 0.125 | 6.67 | 9.5 | 0.25 | 0.5 | 6.67 | 9.126 | 0.25 | 0.125 | 6.67 | 9.5 | Oufuku-Hagaki (5.83x7.87) | 0.25 | 0.125 | 5.33 | 7.37 | 0.25 | 0.5 | 5.33 | 6.87 | 0 | 0 | 5.95 | 7.37 | Hagaki (3.94x5.83) | 0.125 | 0.125 | 3.69 | 5.58 | 0.125 | 0.5 | 3.69 | 4.83 | 0 | 0 | 4.06 | 5.33 | A3 (11.69x16.53) | 0.2 | 0.125 | 11.29 | 15.905 | 0.2 | 0.5 | 11.29 | 15.53 | 0.2 | 0.125 | 11.29 | 15.905 | A5 (5.83x8.27) | 0.125 | 0.125 | 5.58 | 7.645 | 0.125 | 0.5 | 5.58 | 7.27 | 0.125 | 0.125 | 5.58 | 7.645 | Ledger (11x17) | 0.2 | 0.125 | 10.6 | 16.375 | 0.2 | 0.5 | 10.6 | 16 | 0.2 | 0.125 | 10.6 | 16.375 | Super B (13x19) | 0.2 | 0.125 | 12.6 | 18.375 | 0.2 | 0.5 | 12.6 | 18 | 0.2 | 0.125 | 12.6 | 18.375 | Executive (7.25x10.5) | 0.25 | 0.125 | 6.75 | 9.875 | 0.25 | 0.5 | 6.75 | 9.5 | 0.25 | 0.125 | 6.75 | 9.875 | Flsa (8.5x13) | 0.25 | 0.125 | 8 | 12.375 | 0.25 | 0.5 | 8 | 12 | 0.25 | 0.125 | 8 | 12.375 | Custom (8.5x12) | 0.25 | 0.125 | 8 | 11.375 | 0.25 | 0.5 | 8 | 11 | 0.25 | 0.125 | 8 | 11.375 | Number 10 Envelope (4.12x9.5) | 0.1225 | 0.125 | 3.875 | 8.875 | 0.1225 | 0.5 | 3.875 | 8.5 | 0.1225 | 0.125 | 3.875 | 8.875 | A2 Envelope (4.37x5.75) | 0.125 | 0.125 | 4.12 | 5.125 | 0.125 | 0.5 | 4.12 | 4.75 | 0.125 | 0.125 | 4.12 | 5.125 | C6 Envelope (4.49x6.38) | 0.125 | 0.125 | 4.24 | 5.755 | 0.125 | 0.5 | 4.24 | 5.38 | 0.125 | 0.125 | 4.24 | 5.755 | DL Envelope (4.33x8.66) | 0.125 | 0.125 | 4.08 | 8.035 | 0.125 | 0.5 | 4.08 | 7.66 | 0.125 | 0.125 | 4.08 | 8.035 | Japanese Envelope #3 (4.72x9.25) | 0.125 | 0.125 | 4.47 | 8.625 | 0.125 | 0.5 | 4.47 | 8.25 | 0.125 | 0.125 | 4.47 | 8.625 | Japanese Envelope #4 (3.54x8.07) | 0.125 | 0.125 | 3.29 | 7.445 | 0.125 | 0.5 | 3.29 | 7.07 | 0.125 | 0.125 | 3.29 | 7.445
PS100 | Letter (8.5x11) | 0.125 | 0.125 | 3.88 | 5.205 | n/a | n/a | n/a | n/a | 0 | 0 | 4.25 | 5.33
| A4 (8.27x11.69) | 0.125 | 0.125 | 3.88 | 5.205 | n/a | n/a | n/a | n/a | 0 | 0 | 4.25 | 5.33 | Legal (8.5x14) | 0.125 | 0.125 | 3.88 | 5.205 | n/a | n/a | n/a | n/a | 0 | 0 | 4.25 | 5.33 | Photo (4x6) | 0.125 | 0.125 | 3.75 | 5.75 | n/a | n/a | n/a | n/a | 0 | 0 | 4.12 | 6.06 | A6 (4.13x5.83) | 0.125 | 0.125 | 3.88 | 5.205 | n/a | n/a | n/a | n/a | 0 | 0 | 4.25 | 5.33 | B4 (10.126x14.342) | 0.125 | 0.125 | 3.88 | 5.205 | n/a | n/a | n/a | n/a | 0 | 0 | 4.25 | 5.33 | B5 (7.17x10.126) | 0.125 | 0.125 | 3.88 | 5.205 | n/a | n/a | n/a | n/a | 0 | 0 | 4.25 | 5.33 | Oufuku-Hagaki (5.83x7.87) | 0.125 | 0.125 | 3.88 | 5.205 | n/a | n/a | n/a | n/a | 0 | 0 | 4.25 | 5.33 | Hagaki (3.94x5.83) | 0.125 | 0.125 | 3.69 | 5.58 | n/a | n/a | n/a | n/a | 0 | 0 | 4.06 | 5.33 | A3 (11.69x16.53) | 0.125 | 0.125 | 3.88 | 5.205 | n/a | n/a | n/a | n/a | 0 | 0 | 4.25 | 5.33 | A5 (5.83x8.27) | 0.125 | 0.125 | 3.88 | 5.205 | n/a | n/a | n/a | n/a | 0 | 0 | 4.25 | 5.33 | Ledger (11x17) | 0.125 | 0.125 | 3.88 | 5.205 | n/a | n/a | n/a | n/a | 0 | 0 | 4.25 | 5.33 | Super B (13x19) | 0.125 | 0.125 | 3.88 | 5.205 | n/a | n/a | n/a | n/a | 0 | 0 | 4.25 | 5.33 | Executive (7.25x10.5) | 0.125 | 0.125 | 3.88 | 5.205 | n/a | n/a | n/a | n/a | 0 | 0 | 4.25 | 5.33 | Flsa (8.5x13) | 0.125 | 0.125 | 3.88 | 5.205 | n/a | n/a | n/a | n/a | 0 | 0 | 4.25 | 5.33 | Custom (8.5x12) | 0.125 | 0.125 | 3.88 | 5.205 | n/a | n/a | n/a | n/a | 0 | 0 | 4.25 | 5.33 | Number 10 Envelope (4.12x9.5) | 0.1225 | 0.125 | 3.875 | 8.875 | n/a | n/a | n/a | n/a | 0 | 0 | 4.24 | 9 | A2 Envelope (4.37x5.75) | 0.125 | 0.125 | 3.88 | 5.205 | n/a | n/a | n/a | n/a | 0 | 0 | 4.25 | 5.33 | C6 Envelope (4.49x6.38) | 0.125 | 0.125 | 3.88 | 5.205 | n/a | n/a | n/a | n/a | 0 | 0 | 4.25 | 5.33 | DL Envelope (4.33x8.66) | 0.125 | 0.125 | 3.88 | 5.205 | n/a | n/a | n/a | n/a | 0 | 0 | 4.25 | 5.33 | Japanese Envelope #3 (4.72x9.25) | 0.125 | 0.125 | 3.88 | 5.205 | n/a | n/a | n/a | n/a | 0 | 0 | 4.25 | 5.33 | Japanese Envelope #4 (3.54x8.07) | 0.125 | 0.125 | 3.29 | 7.445 | n/a | n/a | n/a | n/a | 0 | 0 | 3.66 | 7.57
LJMono LJColor | Letter (8.5x11) | 0.25 | 0.2 | 8 | 10.6 | 0.25 | 0.2 | 8 | 10.6 | n/a | n/a | n/a | n/a
| A4 (8.27x11.69) | 0.25 | 0.2 | 7.77 | 11.29 | 0.25 | 0.2 | 7.77 | 11.29 | n/a | n/a | n/a | n/a | Legal (8.5x14) | 0.25 | 0.2 | 8 | 13.6 | 0.25 | 0.2 | 8 | 13.6 | n/a | n/a | n/a | n/a | Photo (4x6) | 0.25 | 0.2 | 3.5 | 5.6 | 0.25 | 0.2 | 3.5 | 5.6 | n/a | n/a | n/a | n/a | A6 (4.13x5.83) | 0.25 | 0.2 | 3.63 | 5.43 | 0.25 | 0.2 | 3.63 | 5.43 | n/a | n/a | n/a | n/a | B4 (10.126x14.342) | 0.25 | 0.2 | 9.626 | 13.942 | 0.25 | 0.2 | 9.626 | 13.942 | n/a | n/a | n/a | n/a | B5 (7.17x10.126) | 0.25 | 0.2 | 6.67 | 9.726 | 0.25 | 0.2 | 6.67 | 9.726 | n/a | n/a | n/a | n/a | Oufuku-Hagaki (5.83x7.87) | 0.25 | 0.2 | 5.33 | 7.47 | 0.25 | 0.2 | 5.33 | 7.47 | n/a | n/a | n/a | n/a | Hagaki (3.94x5.83) | 0.25 | 0.2 | 3.44 | 5.43 | 0.25 | 0.2 | 3.44 | 5.43 | n/a | n/a | n/a | n/a | A3 (11.69x16.53) | 0.25 | 0.2 | 11.19 | 16.13 | 0.25 | 0.2 | 11.19 | 16.13 | n/a | n/a | n/a | n/a | A5 (5.83x8.27) | 0.25 | 0.2 | 5.33 | 7.87 | 0.25 | 0.2 | 5.33 | 7.87 | n/a | n/a | n/a | n/a | Ledger (11x17) | 0.25 | 0.2 | 10.5 | 16.6 | 0.25 | 0.2 | 10.5 | 16.6 | n/a | n/a | n/a | n/a | Super B (13x19) | 0.25 | 0.2 | 12.5 | 18.6 | 0.25 | 0.2 | 12.5 | 18.6 | n/a | n/a | n/a | n/a | Executive (7.25x10.5) | 0.25 | 0.2 | 6.75 | 10.1 | 0.25 | 0.2 | 6.75 | 10.1 | n/a | n/a | n/a | n/a | Flsa (8.5x13) | 0.25 | 0.2 | 8 | 12.6 | 0.25 | 0.2 | 8 | 12.6 | n/a | n/a | n/a | n/a | Custom (8.5x12) | 0.25 | 0.2 | 8 | 11.6 | 0.25 | 0.2 | 8 | 11.6 | n/a | n/a | n/a | n/a | Number 10 Envelope (4.12x9.5) | 0.25 | 0.2 | 3.62 | 9.1 | 0.25 | 0.2 | 3.62 | 9.1 | n/a | n/a | n/a | n/a | A2 Envelope (4.37x5.75) | 0.25 | 0.2 | 3.87 | 5.35 | 0.25 | 0.2 | 3.87 | 5.35 | n/a | n/a | n/a | n/a | C6 Envelope (4.49x6.38) | 0.25 | 0.2 | 3.99 | 5.98 | 0.25 | 0.2 | 3.99 | 5.98 | n/a | n/a | n/a | n/a | DL Envelope (4.33x8.66) | 0.25 | 0.2 | 3.83 | 8.26 | 0.25 | 0.2 | 3.83 | 8.26 | n/a | n/a | n/a | n/a | Japanese Envelope #3 (4.72x9.25) | 0.25 | 0.2 | 4.22 | 8.85 | 0.25 | 0.2 | 4.22 | 8.85 | n/a | n/a | n/a | n/a | Japanese Envelope #4 (3.54x8.07) | 0.25 | 0.2 | 3.04 | 7.67 | 0.25 | 0.2 | 3.04 | 7.67 | n/a | n/a | n/a | n/a

Left edge, Top edge, Width and Height values are in inches. "n/a" means option is not available.

## 5 Updates

- HPIJS 2.1.4 - This release has the following changes.

       1. Fixed a bi-di problem with all LIDIL printers.
       2. Fixed a 64-bit problem with LJJetReady printers.
       3. Fixed a KRGB issue in the VIP path in HPIJS. This fixes a problem where black text would drop some pixels.
       4. In order to accommodate 4-sided full bleed, PS320/330/370/380 were moved to DJGenericVIP device class.
       5. Added hplip_api convenience library support.
       6. Fixed a problem where bi-di was not turned off correctly in hpijs. This caused extra deviceid queries.
       7. Fixed postscript PPD file case sensitivity issue. This issue caused a problem with kprinter.
       8. Added PPD files for the following new printers.

          HP Color LaserJet 2800
          HP Photosmart 8200
          HP Photosmart 330
          HP Photosmart 380
          Deskjet 1280
          Deskjet 3040
          Deskjet 3920

- HPIJS 2.1.3 - This release has the following changes.

         1. Increased the printable region for DJGenericVIP. This resolves a left margin issue.
         2. Fixed a problem printing more than one page with LJ 1010/1012.
         3. Modified hpijs to ignore bi-di errors so the "hp" backend can handle them. This fixed a problem where hpijs would hang forever.

- HPIJS 2.1.2 - This release has the following changes.

         1. Added new print mode "FastDraft Grayscale" to DJGenericVIP.
         2. Rebuilt PPD files with new "FastDraft Grayscale" support.
         3. Put limit (max=5) on syslog messages when output device write() fails (Debian request).
         4. Removed specified gcc options in hpijs configure.in (Debian request).
         5. Fixed a 64-bit compile issue in ljjetready.cpp.

- HPIJS 2.1.1 - This release has the following changes.

         1. Fixed bi-di support issue for Business Inkjet 1100/1200.
         2. Added PPD files for the following printers.

            HP LaserJet 4240
            HP LaserJet 9040
            hp color LaserJet 4610
            HP LaserJet 1022
            HP Business Inkjet 1000

- HPIJS 2.1 - This release has the following changes.

         1. Added two new device classes - LJFastRaster and LJJetReady. LJFastRaster will replace the pxl1010 driver.
         2. Fixed some HP-UX compile issues.
         3. Added HP postscript PPD files to the hpijs package. This will allow postscript printing instead of printing via hpijs.
         4. Fixed input tray issue with Business Inkjet 1100/1200. The option was missing.
         5. Changed default quality setting from 300 to 600 dpi for DJ9xxVIP.
         6. Replaced gdevijs-krgb-1.0.patch with gdevijs-krgb-1.1.patch. This patch fixes as segfault issue with 1-bit color space IJS drivers (ie: epsonepl).
         7. Fixed a issue with DJ3600 photo pen printing.

         8. Added PPD files for the following printers.

            LJFastRaster:
            LaserJet 1010/1012/1015

            LJJetReady:
            Color LaserJet 3500/3550

            DJGenericVIP:
            HP Photosmart 8750
            HP Deskjet 6600
            HP Deskjet 9800 Series

- HPIJS 2.0.2 - This release has the following changes.

         1. Fixed a 64 bit compiler issue with ljmono.cpp and ljcolor.cpp.

- HPIJS 2.0.1 - This release has the following changes.

         1. Fixed a issue with the max setting for input trays in APDK.
         2. Added PPD files for the following new printers.

            LJMono:
            LaserJet 4345 mfp
            LaserJet 3015/3020/3030

- HPIJS 2.0 - This release has the following changes.

         1. HPIJS now supports bi-di and uni-di I/O. Bi-di works only with HP Linux Imaging and Printing (HPLIP) "hp" CUPS backend.
            Bi-di provides better printer support such as DJGenricVIP four sided full bleed and DJ3320 pen alignment.
         2. Added a new FastDraft Color mode to DJGenericVIP class
         3. Moved Business InkJet 1100 and 1200 printers to DJGenericVIP class
         4. Disabled KRGB path in HighRes mode for DJ9xx class. This fixes a blank page problem when black only data is printed in this printmode.

- HPIJS 1.7.1 - This release has the following changes.

         1. Added PPD files for the following new printers.

            LJMono:
            LaserJet 2410
            LaserJet 2420
            LaserJet 2430
            LaserJet 4250
            LaserJet 4350

- HPIJS 1.7 - This minor release has the following changes.

         1. Changed build package prefix default from /usr to /usr/local in configure.
            This means "./configure --prefix=/usr" must be used when replacing an existing hpijs installation.

         2. Added some NULL pointer checks as per Debian request.

         3. Added PPD files for the following new printers.

            DJGenericVIP:
            DeskJet 5740
            PhotoSmart 2600
            PhotoSmart 2700
            psc 1600
            psc 2350
            OfficeJet 6200
            OfficeJet 7200
            OfficeJet 7300
            OfficeJet 7400

            DJ3320:
            DeskJet 3740

            DJ3600:
            DeskJet 3840

            LJColor:
            Color LaserJet 2550
            Color LaserJet 5550

            LJMono:
            LaserJet 1160
            LaserJet 9050
            LaserJet 9050 MFP
            LaserJet 9040 MFP

- HPIJS 1.6.2 - This minor release has the following changes.

         1. Updated foomatic-rip (3.0.2 SECURITY FIX).

         2. Regenerated all PPD files with foomatic 3.0.2.

         3. Added PPD files for the following new printers. There are no HPIJS code changes.

            DJGenericVIP:
            DeskJet 6800
            DeskJet 6840

            LJMono:
            LaserJet 1160
            LaserJet 1320

            LJColor:
            Color LaserJet 9500 MFP

- HPIJS 1.6.1 - This minor release has the following changes.

         1. Added PPD files for the following new printers. There are no HPIJS code changes.

            DJGenericVIP:
            Photosmart 7400
            Photosmart 8100
            Photosmart 8400
            DeskJet 6540
            DeskJet 6520

            PS100:
            Photosmart 320
            Photosmart 370

- HPIJS 1.6 - This release has the following changes.

         1. Added support for the following printers.

            LJColor:
            hp business inkjet 2300
            hp officejet 9100

            DJ3320:
            officejet 4200

            DJ3600:
            psc 1310

         2. Added the following envelope support. Needed for center-feed envelope trays (ie: laserjets).

            No. 10 Envelope (4.12 x 9.5 in.)
            A2 Envelope (4.37 x 5.75 in.)
            C6 Envelope (4.49 x 6.38 in.)
            DL Envelope (4.33 x 8.66 in.)
            Japanese Envelope #3 (4.72 x 9.25 in.)
            Japanese Envelope #4 (3.54 x 8.07 in.)

         3. Added KRGB support.

  HPIJS now supports two color spaces RGB and KRGB. KRGB provides image enhanced printing for black text and black line drawings which can not be done with current RGB based raster drivers.

         KRGB definition:
         1. K=1-bit black plane, RGB=24 bit color raster.
         2. K-plane will only contain objects that are black text and black line drawings.
         3. RGB raster will not contain K-plane objects.
         4. K resolution and RGB resolution will be equal.
         5. K-plane will be byte aligned.
         6. K-plane bit definition; 1=black, 0=nothing.

  KRGB requires Ghostscript suppport. Current versions of Ghostscript do not support KRGB. In order to support KRGB, a Ghostscript KRGB patch is included in the HPIJS package. The patch modifies the IJS client in Ghostscript and is free to use under the MIT license. The new IJS client should be backward compatible with existing IJS servers. This means KRGB support is optional.

  Use the following command in the Ghostscript source directory to apply the KRGB patch, then rebuild Ghostscript.

         $ patch -p0 < gdevijs-krgb-1.0.patch

- HPIJS 1.5 - This release has the following changes.

         1. Added support for the following printers.

            DeskJet 5600
            DeskJet 5100
            DeskJet 5800
            DeskJet 3600
            DeskJet 3500
            DeskJet 9600
            PSC 2300
            PSC 2400
            PSC 2500
            PSC 2170
            psc 1300
            OfficeJet 5500
            OfficeJet 4100
            OfficeJet 6150
            Business InkJet 1100
            Photosmart 240
            Photosmart 140
            Photosmart 7960
            Photosmart 7760
            Photosmart 7660
            Photosmart 7260
            Photosmart 7268

         2. Removed support for hpijs 0.97.
         3. Corrected the model name for the cp1700.
         4. Added DJ3600 device class.
         5. Updated the foomatic PPD files and foomatic-rip.
         6. Added $(DESTDIR) in Makefile.am to facilitate rpm builds. Special thanks to Robert van den Aker
            for this suggestion.

- HPIJS 1.4.1 - This release has the following changes.

         1. Fixed a GCC 2.95 compile problem with debug.h.
         2. Fixed a foomatic-install issue with gzip 1.3 in Makefile.am. Removed the gzip -r option.
         3. Updated the foomatic PPD files for HPIJS.

- HPIJS 1.4 - This release has the following changes.

         1. Added the following new printer support.

            PSC 1100 Series
            PSC 1200 Series
            Officejet 5100 Series
            Officejet 6100 Series
            Officejet 7100 Series
            Photosmart 7345
            LaserJet 1150
            Business InkJet 3000
            Deskjet 9300

         2. Added 4096 byte output buffering to improve USB performance.
         3. Enabled data compression for DJ3320. Last release was not enabled.
         4. Updated DJ3320 colormap for Normal and Draft.
         5. Updated DJ9xx colormap and break point table for Normal and Best.
         6. Model support is now done by printerfactory and printerproxy.
         7. Fixed a Deskjet 5550 problem with odd page duplex jobs.
         8. Documented new Photo mode for VIP printers with no auto media detection.
         9. Package now includes all Footmatic 3.0 PPD files for HPIJS.
        10. Turns out DJGenericVIP printers only supports full bleed with Oufuku-Hagaki or smaller.
            Code was changed to reflect this.

  HPIJS installation "make install" now supports Foomatic and CUPS by default. Use "./configure" options "foomatic-install" and "cups-install" to disable this feature.

  Special thanks to Till Kamppeter for his support with the Foomatic project at www.linuxprinting.org. His tireless endeavor has consistently improved the printing process.

- HPIJS 1.3.1 - This release has the following changes.

         1. Added data compression to DJ3320.
         2. Changed the default black pen vertical alignment value for the DJ3320.
         3. Added support for custom paper size.
         4. Removed 3425-COVER paper size, this is now a custom paper size.
         5. Added Printable Area documentation.
         6. Fixed a Officejet hang problem (ie: Officejet 500/600/700 and PSC 300).
            The Officejet would hang after printing a job.

- HPIJS 1.3 - This release has the following changes.

         1. Added the following new printer support.

            Deskjet 450
            Deskjet 3320
            Deskjet 3420
            Deskjet 3425
            Deskjet 3810
            Deskjet 3816
            Deskjet 3822
            Deskjet 6122
            Deskjet 6127
            Photosmart 230
            Photosmart 7550
            PSC 2100
            PSC 2150
            PSC 2200

         2. Made a change to configure.in to check for uint32_t in stdint.h, machine/types.h and inttypes.h.
         3. Added 600 dpi Best and 1200 dpi Photo to DJ9xx.
         4. Added a new paper size for printing covers on Deskjet 3425.
         5. Fixed a DJ850 extra page and top margin problem.
         6. Fixed a Deskjet 1120/1125 multiple page problem. These printers now use the DJ9xx device class
            with limited support.

  Special credit goes to Matthias Bunte and Richard Spencer-Smith for providing input for the new DJ9xx 600/1200 dpi print modes. The new print modes are based on a patch originated by Matthias Bunte.

- HPIJS 1.2.2 - This release has the following changes.

         1. Made support for stdint.h conditional.
         2. Added a check in configure.in for platforms that don't support stdint.h.

- HPIJS 1.2.1 - This release has the following changes.

         1. Added PS:MediaPositon parameter for tray selection.
         2. The LJ1100 too light problem should be fixed.
         3. DJ540 will now support DJ400.
         4. Where appropriate, changed "long" to uint32_t for 64-bit platforms.
         5. Updated HPIJS documentation.
            - Best Grayscale for DJ350, DJ6xx, DJ630 and Apollo is 600x300 not 600x600 dpi.
            - Deskjet 5550/5551 and PhotoSmart 7150/7350 will support full bleed.

- HPIJS 1.2 - This release has the following changes.

         1. Added the following new printer support.

            Deskjet 3820
            Deskjet 5550
            Deskjet 5551
            Photosmart 130
            Photosmart 7150
            Photosmart 7350

         2. Added monochrome support for following PCL only LaserJets.

            LaserJet 1100
            LaserJet 2100
            LaserJet 6
            LaserJet 5
            LaserJet 4

         3. Added grayscale 600dpi support to DJ350, DJ6xx, DJ630 and Apollo device classes.
         4. Added legacy support for DJ540, DJ850 and DJ890 series.
         5. Added OfficeJet support (some must be used with HPOJ driver).
         6. Fixed the Flsa paper size problem.
         7. Made minor changes to configure.in for Unix platforms.
         8. Added more support for IJS List and Enumerate commands.
         9. Updated IJS files to IJS 0.34.

- HPIJS 1.1 - This release has the following changes.

         1. Added new printer support for Business Inkjet 2200/2230/2250/2280.
         2. Added HiRes mode to the PS100 device class.
         3. Added Draft modes to most device classes.
         4. Bumped DJ8xx and DJ8x5 Normal Grayscale support to 600 dpi.
         5. Added support for paper sizes Ledger, Executive, Super B and Flsa.

  This release fixes a DJ9xxVIP duplex problem with GNU Ghostscript 7.05 and HPIJS 1.0.4. The problem caused the second page to print incorrectly when duplex was enabled. The problem occurred with 300 dpi input not 600 dpi input.

- HPIJS 1.0.4 - This update has the following changes.

         1. Added a new HiRes mode to DJ9xxVIP device class.
         2. Added support for paper sizes A3 and A5.
         3. Removed Photo Full Bleed paper size and added a FullBleed parameter.
         4. Fixed a duplex top margin problem with paper sizes other than Letter.
         5. Fixed a duplex top margin problem with grey_k and grey_cmy.
         6. Fixed a problem detecting B4 and B5 paper sizes.
         7. Fixed a artifact (black vertical line) that could occur in the right margin.

  The new HiRes mode supports the maximum resolution for DJ9xxVIP device class. For these devices the box specification for resolution is 2400x1200. In the past no scaling was done to 2400 in the printer.

  Full bleed support is no longer a separate paper size. Full bleed is enabled with a new Ghostscript command called FullBleed. Now you just select your 4x6 paper size and set FullBleed=1.

- HPIJS 1.0.3 - Added support for AFPL Ghostscript 7.04 and GNU Ghostscript 6.53. HPIJS is now compatible with the IJS client that comes with Ghostscript. This means the IJS client (gdevijs.c) included with HPIJS 1.0.2 is no longer needed.

  This release is compatible with IJS 0.33. In order to be compliant with IJS 0.33, some Ghostscript commands have changed from HPIJS 1.0.2.

  The Duplex command has changed from -dDuplex=n (n equals: 0=none, 1=tablet, 2=book) to following.

         -dDuplex=false -dTumble=false (none)
         -dDuplex=true  -dTumble=false (book)
         -dDuplex=true  -dTumble=true  (tablet)

  HPIJS print mode parameters must use the "Quality:" prefix. The prefix will allow better management of parameter namespace. See the following Ghostscript command example.

         -sIjsParams="Quality:Quality=0,Quality:ColorMode=2,Quality:MediaType=0,Quality:PenSet=2"

  The following Ghostscript command without the "Quality:" prefex is no longer supported.

         -sIjsParams="Quality=0,ColorMode=2,MediaType=0,PenSet=2"

  The new Ghostscript command -dIjsUseOutputFD is required when using HPIJS.

- HPIJS 1.0.2 - This update has the following changes.

         1. Fixed a problem printing Photo Full Bleed on the Photosmart 100.
         2. Cleaned up BSD documentation in source files.

- HPIJS 1.0.1 - This release now meets Debian Free Software Guidelines (DFSG) and addresses the following problems.

         1. Fixed a setpagedevice problem with the IJS client. PageSize can now be set from postscript.
         2. Fixed a off-by-one error in IJS server, gcc -O2 optimization now seems to work.
         3. Updated the documentation, see the hpijs_readme.html file.

- HPIJS 1.0 - Updated HPIJS to APDK 3.01 which adds support for the following printers.

         Deskjet 656           Photosmart 100        Apollo P-22
         Deskjet 825/845       Photosmart 1115       Apollo P2500
         Deskjet 920           Photosmart 1215       Apollo P2600
         Deskjet 940/948       Photosmart 1315
         Deskjet 995           CP 1160
         Deskjet 1125          CP 1700
         Deskjet 1220
         Deskjet 2250

  Added support for the IJS interface. This release is backward compatible with HPIJS 0.97 interface.

  Added support for Duplex. Duplex is only available with the IJS interface. When Duplex mode is set, top and bottom margins are set to 1/2 inch.

  Added support for the following paper sizes. The new paper sizes are only available with the IJS interface.

         Photo, Photo Full Bleed, A6, B4, B5, Oufuku-Hagaki, Hagaki

  The PrintMode command has been replaced with separate commands - Quality, ColorMode, MediaType and PenSet. These commands are only available with the IJS interface.

  Changed top margin from 1/3 to 1/8 inch. Also, changed the bottom margin to 1/2 inch. Note, on the 6xx series the maximum bottom margin is .46 inch for black and .587 for color. This means for the 6xx series, color printing to within 1/2 inch bottom margin is not guaranteed.

  Added a platform-independent automake/autoconf makefile.

- HPIJS 0.97 - Made some bug fixes to the APDK 2.4 code and changed the top margin settings in gdevhpij.c back to a value that is compatible with existing printer drivers.

  This update fixes some of the following problems.

         1. A line of text near the top of the page would not print.
         2. Top and bottom margins on multiple page jobs was not consistent.

- HPIJS 0.96 - Updated HPIJS to APDK 2.4 which adds support for the following printers.

         DeskJet980
         DeskJet960
         DeskJet350
         Photosmart 1000/1100
         Photosmart 1215/1218

  Made a small change to the top and right margins in gdevhpij.c. This corrects a problem where both Ghostscript and HPIJS were trying to set the margins.

  Added some query commands to the GS/HPIJS communication interface. These commands can be used to return current printer parameters.

  This release is backward compatible with HPIJS 0.95.

- HPIJS 0.95 - Fixed a scaling problem with device-dependent postscript using CUPS. This was a problem with DJ630, DJ6xxP and DJ8xx photo mode only. This was not a problem printing device-independent postscript.

  Changed Ghostscript command interface to HPIJS driver. The HPIJS driver is now called with the following Ghostscript commands.

         -sDEVICE=hpijs
         -sDeviceName=x
            where x equals: DJ630, DJ6xx, DJ6xxPhoto, DJ8xx, DJ9xx or DJ9xxVIP

  This removes the hard coded device parameters from gdevhpij.c so new printer drivers can be added to HPIJS with out re-compiling Ghostscript.

  The old interface used the following Ghostscript commands.

         -sDEVICE=x
            where x equals: DJ630, DJ6xx, DJ6xxP, DJ8xx, DJ9xx or DJ9xxVIP

  The old interface is degraded and will eventually be dropped. New printer drivers will not use the old interface.

- HPIJS 0.94 - Minor changes where made to the add-on files for Ghostscript. No functional changes or bug fixes. Changed gdevhpijs.c to gdevhpij.c (8.3 Ghostscript convention). Moved defines from models.h and hpijs.h to new gdevhpij.h. The gdevhpij.h file is LGPL.

- HPIJS 0.93 - Initial release.

## 6 Installation

HPIJS is not spooler specific, but the Common Unix Printing System (CUPS) is probably the best supported spooler system. Foomatic is a database-driven system for integrating free software printer drivers with common spoolers such as CUPS. Both CUPS and Foomatic are supported by most Linux and Unix distributions. See cups.org for more information about CUPS and Foomatic.

Starting with HPIJS 1.4, HPIJS has built-in support for CUPS and Foomatic. CUPS and Foomatic support is optional via "configure" options.

This section addresses how to install HPIJS. In most cases this is all you need to do. If your current copy of Ghostscript does not support HPIJS you will need to update Ghostscript.

This section includes instructions for compiling Ghostscript from source code, but this is not an easy task. Before attempting to update Ghostscript, check with your distribution, they may have a Ghostscript update with the latest HPIJS support.

This section will show you how to install HPIJS for a CUPS system using Foomatic. This section does not address other spoolers or how to use HPIJS with your spooler. See your distribution about spooler questions. Additional information is available at www.linuxprinting.org and hpinkjet.sourceforge.net.

#### 6.1 HP Inkjet Driver

You can download HPIJS here. The download includes the HPIJS source code and a platform-independent automake/autoconf makefile. The makefile will compile and install hpijs. By default the makefile will also do a Foomatic and CUPS install. After downloading to your directory use the following instructions.

    # tar xzvf hpijs-1.x.tar.gz
    # cd hpijs-1.x
    # ./configure --prefix=/usr
    # make
    # make install
    # killall -HUP cupsd

The Foomatic install will (1) copy HP HPIJS PPD files to /(prefix)/share/ppd/HP (2) copy foomatic-rip to /(prefix)/bin (3) gzip all PPD files.

The CUPS install will (1) remove any old HP HPIJS PPD files from the CUPS PPD directory (2) symlink the HP HPIJS PPD files to the CUPS PPD directory (3) symlink foomatic-rip to the CUPS filter directory.

The "killall -HUP cupsd" will cause the CUPS daemon to re-read all the PPD files in the PPD directory.

If you do not want Foomatic and CUPS install use the following commands instead.

    # ./configure --disable-foomatic-install
    # make
    # make install

You can verify HPIJS was build and installed correctly with the following command.

    # hpijs -h

    Hewlett-Packard Co. Inkjet Server 1.x
    Copyright (c) 2001-2002, Hewlett-Packard Co.

This is all you need to do to install HPIJS. If your current Ghostscript supports the IJS interface you are done. If you are not sure the Ghostscript Install section will show you how to verify IJS interface support.

#### 6.2 Ghostscript

Your current Ghostscript may already support HPIJS. You can verify this with the gs -h command. You should see output similar to this.

    GNU Ghostscript 7.05 (2002-04-22)
    Copyright (C) 2002 artofcode LLC, Benicia, CA.  All rights reserved.
    Usage: gs [switches] [file1.ps file2.ps ...]
    Most frequently used switches: (you can use # in place of =)
     -dNOPAUSE           no pause after page   | -q       `quiet', fewer messages
     -gx  page size in pixels   | -r  pixels/inch resolution
     -sDEVICE=  select device         | -dBATCH  exit after last file
     -sOutputFile= select output file: - for stdout, |command for pipe,
                                             embed %d or %ld for page #
    Input formats: PostScript PostScriptLevel1 PostScriptLevel2 PDF
    Available devices:
       x11 x11alpha x11cmyk x11gray2 x11gray4 x11mono bmpmono bmpgray bmpsep1
       bmpsep8 bmp16 bmp256 bmp16m bmp32b deskjet djet500 laserjet ljetplus
       ljet2p ljet3 ljet3d ljet4 ljet4d lj5mono lj5gray cdeskjet cdjcolor
       cdjmono cdj550 pj pjxl pjxl300 uniprint ijs bj10e bj200 bjc600 bjc800
       faxg3 faxg32d faxg4 pcxmono pcxgray pcx16 pcx256 pcx24b pcxcmyk pbm
       pbmraw pgm pgmraw pgnm pgnmraw pnm pnmraw ppm ppmraw pkm pkmraw pksm
       pksmraw tiffcrle tiffg3 tiffg32d tiffg4 tifflzw tiffpack tiff12nc
       tiff24nc psmono psgray psrgb bit bitrgb bitcmyk png16m pnggray pngmono
       png256 png16 jpeg jpeggray pdfwrite pswrite epswrite pxlmono pxlcolor
       cljet5 cljet5c nullpage
    Search path:
       . : /usr/share/ghostscript/7.05/lib : /usr/share/ghostscript/fonts
    For more information, see /usr/share/ghostscript/7.05/doc/Use.htm.
    Report bugs to bug-gs@ghostscript.com, using the form in Bug-form.htm.

If you don't see the above highlighted "ijs" device your version of Ghostscript does not have built-in support for HPIJS.

If Ghostscipt does not support HPIJS, check with your distribution and see if they have a Ghostsript update.

If necessary, the following instructions show you how to build GNU Ghostscipt 7.05. Other versions of Ghostscript are built in a similar manor. GNU Ghostscript 6.53 or higher will have built-in support for the IJS interface.

1. Download the source code for gs, jpeg, png and zlib into the following directories respectfully. See the GNU Ghostscript documentation for more information. You can create this directory structure in your user directory. Be sure to use the following directory names for jpeg, libpng and zlib.

       ../gs7.05/
       ../gs7.05/jpeg/
       ../gs7.05/libpng/
       ../gs7.05/zlib/

2. Ghostscript looks for fonts in hardcoded directories, see GS_LIB_DEFAULT in the makefile. For Red Hat the following symbolic link will allow Ghostscript to find fonts with out modifying the makefile. Other distributions may have different font directories.

       # ln -s /usr/share/fonts/default/Type1 /usr/share/ghostscript/fonts

3. Now build and install Ghostscript by running the following commands in the Ghostscript directory.

       # ./configure --prefix=/usr
       # make
       # make install

4. Now run the gs -h command, you should see the ijs device name.

#### 6.3 PrintTool

If you use PrintTool (ie: RH6.2 and RH7.0) and you want PrintTool to recognize the new ijs device add the following lines to /usr/lib/rhs/rhs-printfilters/printerdb file.

    StartEntry: IJS
      GSDriver: ijs
      Description: {IJS Client}
      About: { \
               This is a generalized IJS client interface for ghostscript printer \
               drivers. Different drivers and options are specified in the \
               "Extra GS options" box. The following ghostscript commands are used by the \
               HP Inkjet Driver (HPIJS): -sIjsServer=hpijs, \
               -sDeviceManufacturer="HEWLETT-PACKARD", \
               -dIjsUseOutputFD, -sDeviceModel=model, -dDuplex, -dTumble, -sIjsParams=options. \
               Where DeviceModel equals one of the following: "DESKJET 990", "DESKJET 970", etc... \
               -dDuplex equals book, -dDuplex -dTumble equals tablet. \
               IjsParams can be any of the following: Quality=n, MediaType=n, ColorMode=n, PenSet=n. \
               Where Quality equals one of the following: 0=normal (default), 1=draft, 2=best. \
               MediaType equals one of the following: 0=plain (default), 1=premium, 2=photo. \
               ColorMode equals one of the following: 0=grey_k, 1=grey_cmy, 2=color (default). \
               PenSet equals one of the following:  0=black_pen, 1=color_pen, 2=both_pens, \
               3=mdl_pen, 4=mdl_both. \
               Not all combinations of Quality, MediaType and ColorMode are valid print modes. \
               Resolution setting 600x600 is available for some print modes only. \
               In printtool special characters must be preceded by a double backslash see the \
               following example for HP 990C: -sIjsServer=hpijs -sDeviceManufacturer=\\"HEWLETT-PACKARD\\" \
               -dIjsUseOutputFD -sDeviceModel=\\"DESKJET 990C\\". \
             }
      Resolution: {300} {300} {}
      Resolution: {600} {600} {}
    EndEntry

In PrintTool special characters must be preceded by a double backslash (see example above). Note, PrintTool has a problem with double backslash. PrintTool allows you to set double backslash, but it will only read one backslash back when editing. This means if you are editing the Extra GS options you must re-enter the double backslash.

## 7 Usage

#### 7.1 Spooler Example

The following command will print a postscript file to the lp0 spooler.

    $ lpr -Plp0 tiger.ps

Most applications use the lpr command to print documents.

#### 7.2 Ghostscript Example

Here is a Ghostscript example using our driver on a 990C deskjet from the command line. This command bye passes the spooler and prints directly to the printer. You must be logged in as root in order direct the output directly to /dev/lp0.

    $ gs -sDEVICE=ijs -sIjsServer=hpijs -dIjsUseOutputFD -sDeviceManufacturer="HEWLETT-PACKARD" \
      -sDeviceModel="DESKJET 990" -r300 -dNOPAUSE -dSAFER -sOutputFile="/dev/lp0" file.ps -c quit

This command line example shows how to print a 4x6 inch photo from a digital camera.

    $ convert -rotate 90 p8160010.jpg p8160010.png
    $ convert -page 324x432-18+0 p8160010.png photo.ps
    $ gs -sDEVICE=ijs -sIjsServer=hpijs -dIjsUseOutputFD -sDeviceManufacturer="HEWLETT-PACKARD" \
      -sDeviceModel="DESKJET 990" -r300 -dNOPAUSE -dSAFER -sOutputFile="/dev/lp0" \
      -dDEVICEWIDTHPOINTS=288 -dDEVICEHEIGHTPOINTS=432 photo.ps -c quit

The first command rotates the picture 90 degrees and converts from jpg to png. The second command converts the png to postscript and scales the image to 4.5x6 inches. The original photo was 1280x960 pixels. In order to keep the same aspect ratio as the original photo, the second command scales to 4.5x6 instead of 4x6 inches. The means we need to clip the top and bottom (x axis) by 0.25 inches. Ghostscript parameters DEVICEWIDTHPOINTS=288 and DEVICEHEIGHTPOINTS=432 specify the actual paper size in postscript units, which in this case represents 4x6 inches (288=4*72, 432=6*72).

Similar to the above example, here is a 4x6 full bleed (borderless) photo printing example using the Photosmart 100.

    $ convert -rotate 90 p8160010.jpg p8160010.png
    $ convert -page 324x432-18+0 p8160010.png photo.ps
    $ gs -sDEVICE=ijs -sIjsServer=hpijs -dIjsUseOutputFD -sDeviceManufacturer="HEWLETT-PACKARD" \
      -sDeviceModel="PHOTOSMART 100" -r600 -sIjsParams="Quality:FullBleed=1" -dNOPAUSE -dSAFER \
      -sOutputFile="/dev/usb/lp0" -dDEVICEWIDTHPOINTS=288 -dDEVICEHEIGHTPOINTS=432 photo.ps -c quit

David Suffield
© 2001-2005 Hewlett-Packard Company
HPIJS 2.1.4, last updated July 19, 2005