Manpage of 'gs-pcl3' on UHLU - BSD System Documentation,
Programming Reference, Manual Pages and Source Code
All manual pages         All RFC pages
Common page
for gs-pcl3
Other pages
for gs-pcl3
More pages
containing gs-pcl3

Section 1 manual page or howto for 'gs-pcl3'  

GS-PCL3(1)							    GS-PCL3(1)



NAME
       pcl3 -- ghostscript device driver for printers understanding PCL 3+

SYNOPSIS
       gs    -sDEVICE=pcl3     [gs_option     |    -dBlackLevels=integer     |
       -dCMYLevels=integer  |  -sColorModel=model   |  -sColourModel=model   |
       -dCompressionMethod=method   | -dConfigureEveryPage  | -dCUPSAccounting
       | -dCUPSMessages  | -dDepletion=depletion  | -dDryTime=seconds  | -sDu-
       plexCapability=capability      |     -sIntensityRendering=method      |
       -dLeadingEdge=edge  | -dManualFeed  | -sMediaConfigurationFile=pathname
       |  -dMediaPosition=position   | -sMedium=medium	| -dOnlyCRD  | -sPage-
       CountFile=pathname   |  -sPCLInit1=string    |	-sPCLInit2=string    |
       -sPJLJob=jobname  | -sPJLLanguage=language  | -sPrintQuality=quality  |
       -dRasterGraphicsQuality=quality	| -dSendBlackLast  | -dSendNULs=number
       |  -dShingling=shingling  | -sSubdevice=subdevice  | -dTumble  | -dUse-
       Card=value ]  ... [file ...]

DESCRIPTION
   Supported Printers
       The  ghostscript  device  driver  pcl3  (formerly  called  hpdj)  is  a
       ghostscript   backend   for  printers  understanding  Hewlett-Packard's
       Printer Command Language, level	3+  ("PCL  3+",  also  called  "PCL  3
       Plus").	 The driver is intended to support in particular the following
       printer models:

	      HP DeskJet
	      HP DeskJet Plus
	      HP DeskJet Portable
	      HP DeskJet 310
	      HP DeskJet 320
	      HP DeskJet 340
	      HP DeskJet 400
	      HP DeskJet 500
	      HP DeskJet 500C
	      HP DeskJet 510
	      HP DeskJet 520
	      HP DeskJet 540
	      HP DeskJet 550C
	      HP DeskJet 560C
	      HP DeskJet 600
	      HP DeskJet 660C
	      HP DeskJet 670C
	      HP DeskJet 680C
	      HP DeskJet 690C
	      HP DeskJet 850C
	      HP DeskJet 855C
	      HP DeskJet 870C
	      HP DeskJet 890C
	      HP DeskJet 1120C

       The PCL dialect called "PCL Level  3  enhanced"	is  apparently	a  not
       entirely  compatible  modification of PCL 3+.  This driver should basi-
       cally work with such printers  but  you	must  be  more	careful  which
       options	you  select  and  you  might  not  be able to exploit all your
       printer's capabilities.

       The driver  does  not  support  printers  understanding	only  Hewlett-
       Packard's  PPA  (Printing  Performance  Architecture)  commands.   If a
       printer's documentation does not say anything about its printer command
       language  and  you find a statement like "... is designed for Microsoft
       Windows" or "DOS support through Windows only", the printer  is	almost
       certainly  a  PPA printer and hence is intended exclusively for systems
       running Microsoft Windows.  (These printers are also erroneously  known
       as  "GDI  printers"  because they are intended to be accessed through a
       manufacturer-supplied driver via Windows' GDI interface.)  There  exist
       ways of using a PPA printer with ghostscript, but not through pcl3.

       Different  printer  models  usually implement model-specific subsets of
       all PCL-3+ commands or arguments to commands.  You must therefore  tell
       the  driver by means of the Subdevice option for which model the gener-
       ated PCL code is intended.  The model-dependent difference in the  gen-
       erated code is not great.  Apart from media specifications, resolutions
       and colour capabilities, one can consider three groups of models  which
       are treated with significant differences:

	      Group 1	DeskJet, DeskJet Plus, DeskJet 500

	      Group 2	DeskJet  Portable,  DeskJets  3xx, 400, 5xx except 500

			and 540,

	      Group 3	DeskJets 540, 6xx, 8xx and 1120C.

       The first two groups I call the "old Deskjets", the  third  group  con-
       sists  of "new DeskJets".  If you have a PCL-3 printer not appearing in
       the list above, the likelihood is still good that it  will  accept  the
       files  generated  by pcl3.  You can specify one of the supported subde-
       vices in these cases (it is sufficient to try one each from the	groups
       just mentioned), or use the special subdevice names unspecold or unspec
       which are treated like members of the second and the third group above,
       respectively,  with  all  subdevice-dependent checks having been turned
       off.

       The list of printer models for which this driver is currently known  to
       work is:

	      HP 2000C
	      HP 2500CM
	      HP DeskJet 697C
	      HP DeskJet 850C
	      HP DeskJet 970C
	      HP DeskJet 1100C
	      Xerox DocuPrint M750

       Details	can be found in the file reports.txt in the pcl3 distribution;
       its latest version is available via  pcl3's  home  page	(link  to  URL
       http://home.t-online.de/home/Martin.Lottermoser/pcl3.html)  .   If  you
       wish to report on the hardware compatibility for a  particular  printer
       model, please read the file how-to-report.txt.

       Omitting  models  already  mentioned,  previous (hpdj) versions of this
       driver were reported to work with the following printers:

	      HP DeskJet 340
	      HP DeskJet 400 (tested for Gray only)
	      HP DeskJet 420
	      HP DeskJet 500
	      HP DeskJet 500C (tested for Gray only)
	      HP DeskJet 520
	      HP DeskJet 540
	      HP DeskJet 560C
	      HP DeskJet 600
	      HP DeskJet 610C
	      HP DeskJet 612C
	      HP DeskJet 640C
	      HP DeskJet 660C/660Cse
	      HP DeskJet 670C
	      HP DeskJet 672C
	      HP DeskJet 680C
	      HP DeskJet 690C
	      HP DeskJet 690C+
	      HP DeskJet 693C
	      HP DeskJet 694C
	      HP DeskJet 832C
	      HP DeskJet 855C
	      HP DeskJet 870Cse/870Cxi
	      HP DeskJet 880C
	      HP DeskJet 890C
	      HP DeskJet 895Cse/895Cxi
	      HP DeskJet 932C
	      HP DeskJet 1120C
	      HP OfficeJet 350
	      HP OfficeJet 590
	      HP OfficeJet 600
	      HP OfficeJet 625
	      HP OfficeJet G55
	      HP OfficeJet T45
	      Lexmark 3000 Color Jetprinter
	      Olivetti JP792 (see the option SendBlackLast)

       Most of the people who sent me reports did not state  to  which	extent
       hpdj worked for their printer model.

   Colour Models
       Ignoring  photo	cartridges  which  are	not supported by pcl3, DeskJet
       printers can be classified in four categories:

	  o  The printer has only a black ink cartridge.

	  o  The printer can print with either a black or a  cyan/magenta/yel-
	     low (CMY) cartridge.

	  o  The printer holds a CMY and a black cartridge simultaneously, but
	     the two groups of inks are chemically incompatible and should not
	     be  overlayed.  (Don't worry: the printer is not going to explode
	     if they do.  You merely get poorer results because the black  ink
	     will  spread  further than it should.  This is called "ink bleed-
	     ing".)

	  o  The printer holds a CMY and a black cartridge simultaneously  and
	     the  inks	can be mixed.  (Newer HP DeskJets use such bleed-proof
	     inks.)

       This leads to four (process) colour models for the driver:


	      Gray	Print in black only.

	      CMY	Print with cyan, magenta and yellow.   In  this  mode,

			"composite black" consisting of all three inks is used
			to stand in for true black.

	      CMY+K	Print with all four inks, but never mix black with one

			of the others.

	      CMYK	Print with all four inks.

       As  a  printer with both, a black and a CMY cartridge, can usually also
       print, e.g., with black only, the printer's  "cartridge	state"	merely
       identifies  one	of  these models as the maximal one.  Depending on the
       category of the printer, the driver will therefore accept one  or  more
       models.	The possibilities are:



	      DeskJet Model			   Colour Models
	      ------------------------------------------------------
	      DeskJet,	 DeskJet  Plus,  DeskJet   Gray
	      Portable, 500, 510, 520
	      310, 320, 340, 400, 500C, 540, 600   Gray, CMY
	      550C, 560C			   Gray, CMY, CMY+K
	      660C,  670C,  680C,  690C,   850C,   all
	      855C, 870C, 890C, 1120C

       The  subdevices	unspecold and unspec also permit all colour models.  A
       printer capable only of CMY might accept CMY+K or CMYK data,  remapping
       them  to  CMY,  and  a printer capable of CMY+K might remap CMY data to
       CMY+K.

       The colour model CMY+K is not useful if you have a  CMYK  printer.   In
       contrast,  if  you  have a CMY+K or CMYK printer and the two cartridges
       support different resolutions, the colour models  Gray  or  CMY	become
       interesting  as	well.	In most of these cases the black cartridge can
       print at a higher resolution than the CMY cartridge, although the  con-
       verse  does  also occur.  In addition, ghostscript is generally fastest
       for Gray.

       PCL 3+ also supports the colour model RGB although Hewlett-Packard dis-
       courages  its  use.  For this model the printer internally converts the
       RGB data it receives into CMY data for printing.  Note that not	every-
       thing  which can be demanded when using a CMY palette in PCL 3+ is also
       permitted when using RGB.  Because  of  its  limited  usefulness,  pcl3
       accepts	the  colour  model  RGB  only for the subdevices unspecold and
       unspec.

   Media Sizes and Orientations
       A PostScript document describes its visible content with respect  to  a
       coordinate  system  called  default  user space.  Almost all PostScript
       devices are page devices which paint only a restricted rectangular area
       in default user space.  Part of the state of a page device is therefore
       the current page size, two numbers specifying the width and  height  of
       the  sheet  to  be  printed  on.  These values must be interpreted from
       default user space, hence the page size not only describes  the	"sheet
       size"  (extension irrespective of orientation) but also the orientation
       between page contents and sheet (portrait if width <= height, landscape
       otherwise).   The  page	size is requested by the user or the document,
       and it is one of the jobs of the device to satisfy this request.

       Ghostscript looks at several sources to determine the page size:

	  o  the default size configured for gs (usually US Letter or  ISO  A4
	     in portrait orientation),

	  o  the value given to the option PAPERSIZE in the invocation,

	  o  the size requested by the document, unless you specify -dFIXEDME-
	     DIA.

       The last applicable item in this list overrides the others,  hence  the
       current page size can change at runtime.

       The  pcl3 driver splits the page size into sheet size and page orienta-
       tion and passes the sheet size to the printer.  This works only if  the
       printer	accepts this size (accepted sizes are listed in your printer's
       manual).  For the explicitly supported printers, the driver knows which
       sizes  are  accepted  and will refuse to print if an unsupported one is
       requested.  (If you suspect that pcl3 is in error  concerning  what  is
       supported,  check  the  list of supported sizes in the PPD file for the
       subdevice you are using.)  Group-3 printers also accept a  custom  page
       size command which permits printing on arbitrarily-sized media but only
       within certain limits which are also known to the driver.   Unlike  the
       sheet  size  the  page orientation is irrelevant for deciding whether a
       particular page size is supported or not.  The driver will adapt itself
       as  required by the PostScript language and rotate the output if neces-
       sary.  (I know of only one other ghostscript driver capable of this.)

       In setting up the PostScript default user space, pcl3  does  not  treat
       envelope sizes differently from other sizes.

       The  subdevice  unspecold accepts all sizes supported by the HP DeskJet
       560C, unspec supports all discrete  sizes  known  to  the  HP  DeskJets
       850C/855C/870C/890C  and treats in addition every other size request as
       a custom page size without imposing any limits.	If using any of  these
       two  subdevices	you  should  change the list of supported sizes to fit
       your printer's capabilities; see the CONFIGURATION  section  below  for
       details.

       In  order for a document to be printed correctly a sheet of appropriate
       size must be provided and the driver must  know	what  its  orientation
       with respect to the printing mechanism is.  The latter is usually spec-
       ified by reference to the feeding direction as "short  edge  first"  or
       "long  edge  first".   Don't  confuse this kind of orientation with the
       portrait/landscape orientation: the former ("sheet orientation") refers
       to  the orientation of the sheet with respect to the feeding direction,
       the latter ("page orientation") describes the orientation of the  sheet
       with respect to the page contents (default user space).	These orienta-
       tions are  logically  independent:  people  inserting  paper  into  the
       printer	need  to know about the first, people composing documents only
       care about the latter.

       Because pcl3 has no information about the actual dimension or  orienta-
       tion  of  the  medium  in the input tray, you must ensure yourself that
       this is appropriate.  By default, the driver assumes the  dimension  to
       be  that requested via the page size, but you can override this assump-
       tion with an InputAttributes definition (see the Media Sources and Des-
       tinations subsection in the CONFIGURATION section below).

       There  is  no  command  in PCL 3+ to tell the printer about the sheet's
       orientation in the input tray, therefore it cannot be  chosen  and  the
       manufacturer must prescribe it.	I am not aware of any precise and com-
       plete statement from Hewlett-Packard about what	is  required  in  this
       respect,  hence	you  should  check  your  printer's manual whether the
       assumptions made by pcl3 are correct or not: the  driver  assumes  that
       media  are always fed short edge first except when using the subdevices
       hpdj, hpdjplus, hpdj400, hpdj500 or hpdj500c for printing  on  envelope
       sizes  (US  no.	10  and ISO DL).  In these cases you should insert the
       medium long edge first.	If you find that pcl3's default  behaviour  is
       incorrect,  you	can override it with the option LeadingEdge or a media
       configuration file (see the CONFIGURATION section below).

   Print Quality and Media Properties
       With the introduction of the DeskJet 540, HP added two new PCL commands
       to  the language: "Print Quality" and "Media Type".  For older DeskJets
       (groups 1 and 2), similar effects can be achieved  by  specifying  some
       technical aspects of the printing process in detail.

       You  can use the PrintQuality and Medium options to adapt the driver to
       the desired output quality and those properties of the medium  it  must
       know  about,  independent of which kind of subdevice you select.  If it
       corresponds to a printer understanding the  new	commands,  the	option
       values  are  passed  through to the printer, otherwise these specifica-
       tions are mapped to the older Depletion, Shingling, and Raster Graphics
       Quality commands based on recommendations from HP.  If you are not sat-
       isfied with the result in the latter case, use the  options  Depletion,
       Shingling and RasterGraphicsQuality to explicitly set these values.

   Diagnostic Messages
       Error  messages	issued	by  this  driver start with "? component:" and
       warnings with "?-W component:".	The component can be  eprn,  pcl3,  or
       pclgen,	corresponding  to the driver's three internal layers: the eprn
       device extends ghostscript without knowing PCL, pclgen is a module gen-
       erating	PCL without being aware of ghostscript, and pcl3 is the driver
       proper connecting the other two layers.

       All these messages are written on the standard error stream.

OPTIONS
       When specifying options for gs you should keep in  mind	that  case  is
       significant,  that some options must be passed as strings (-s) and oth-
       ers as general tokens (-d),  and  that  gs  effectively	ignores  every
       option  it  does  not recognize.  Hence some care in spelling parameter
       names is necessary.

       If you are confused by the large number of options, don't worry.   Just
       ignore  those you don't understand and concentrate first on the follow-
       ing ones, given here in the order of their importance: -sDEVICE, -sSub-
       device,	-sColourModel,	-r,  -sPrintQuality, and -sMedium.  You should
       also check whether there is an entry in the  reports.txt  file  in  the
       pcl3 distribution listing working option combinations for your printer.

   Standard Options
       When calling gs with the pcl3 driver you can specify any option defined
       for  ghostscript's  prn	(printer) device although some have particular
       meanings or restrictions.  This includes all device-independent options
       described  in  gs(1).  You should also look into ghostscript's extended
       documentation (file <Use.h> (link to  URL  Use.htm)   and  the  section
       Device  parameters (link to URL Language.htm#Device_parameters) in Lan-
       <guage.h>).

       -sDEVICE=pcl3

		 This specification selects the pcl3 driver, but this  is  not
		 the only way to select it with this option.  See the descrip-
		 tion of the Subdevice option below for other possibilities.

       -dDuplex[=boolean] or -dDuplex=null

		 This parameter requests duplex printing and  can  be  set  to
		 true  only for unspec and unspecold, and when the DuplexCapa-
		 bility value is not none.  The default is null which for this
		 driver means that the printer's default setting will be used.

		 If your printer does not  support  duplex  printing  you  can
		 achieve the same effect manually by printing the odd and even
		 pages separately (use a command  like	psselect(1)  from  the
		 psutils  package  for extracting these parts) and reinserting
		 the paper in between.

       -r resolution

		 This option specifies the resolution in pixels per inch (ppi;
		 sometimes also called dots per inch, dpi).  The driver checks
		 whether the subdevice selected accepts the  given  resolution
		 unless  the  subdevice  is  unspecold or unspec.  Resolutions
		 supported by at least some of the other subdevices  for  some
		 of  the  colour models are 75, 100, 150, 300, 600x300 and 600
		 ppi.  Consult the PPD files in the pcl3 distribution  if  you
		 want to know the details.  The default resolution for pcl3 is
		 300 ppi.

		 At least the highest possible value should be listed in  your
		 printer's manual, but some care is necessary in the interpre-
		 tation: the value given to pcl3 must  be  a  resolution  sup-
		 ported by the printer's hardware for all the colorants in the
		 process colour model simultaneously  and  when  operating  in
		 raster  graphics  mode.  You should also keep in mind that if
		 your printer has two cartridges they might support  different
		 sets  of  resolutions,  i.e., which resolution you can choose
		 might depend on the colour model.  It is also	possible  that
		 the  print  quality has to be considered as well.  If you are
		 in doubt and have access to  a  manufacturer-endorsed	driver
		 for your printer, use pcl3opts to find out about the settings
		 used by that driver.

		 At least some of the series-500 DeskJets claim  to  permit  a
		 resolution  of 600 x 300 ppi.	However, although these models
		 have a 600 dpi addressable horizontal resolution grid they do
		 not  permit neighbouring pixels to be activated (and the dots
		 printed still have a diameter of about 1/300 in).  The raster
		 data  generated  by  gs  does	not obey this restriction.  In
		 addition, it is possible that the higher resolution is anyway
		 only  supported  for  the printer's builtin fonts and not for
		 general raster data.

		 Concerning the DeskJet 870C, my impression is	that  although
		 some  HP  documents and drivers use expressions like "600x300
		 dpi C-REt color" for this printer, the model does not	really
		 support  a  resolution  of 600 x 300 ppi.  First, it does not
		 accept pcl3's output with this resolution, and second, if one
		 inspects  the	best  output  of  HP's Windows driver for this
		 printer with pcl3opts, one finds that the file uses a	"mixed
		 resolution",  i.e.,  600  ppi	for black and 300 ppi for CMY.
		 This is not supported by pcl3.

   Pcl3-Specific Options
       -dBlackLevels=levels and -dCMYLevels=levels

		 These options set the number of intensity  levels  per  pixel
		 and  colorant	to  use  when printing with black or CMY inks,
		 respectively, and must be consistent with the	colour	model.
		 They	permit	access	to  the  printer's  Colour  Resolution
		 Enhancement technology (C-REt) feature.  The defaults	are  0
		 or 2, depending on the colour model chosen.  Other values are
		 only accepted for  the  subdevices  hpdj8nnc,	hpdj1120c  and
		 unspec, and when not using the colour model RGB.

		 The  subdevice unspec accepts any non-negative number of lev-
		 els  except  1  up  to  256.	The  subdevices  hpdj8nnc  and
		 hpdj1120c  accept the levels 0, 2, 3 and 4 with the following
		 restrictions if any of the levels is  larger  than  2	(these
		 restrictions  have  been  determined  experimentally  with  a
		 DeskJet 850C and are not based on HP documentation):

		    o  You can't use this feature with draft quality.

		    o  You can't use a colour model of CMY.

		    o  You must use a resolution of 300 ppi.

		    o  You must use 4 levels for black.

		 When using the subdevice unspec you should expect the printer
		 to similarly limit the possibilities.	In particular you must
		 expect the permitted number of levels	to  depend  on	colour
		 model, resolution and print quality.  So far I have not heard
		 of a PCL-3+ printer supporting more than four intensity  lev-
		 els per colorant.

       -sColorModel=model or -sColourModel=model

		 This selects the colour model to be used by the driver: Gray,
		 RGB, CMY, CMY+K or CMYK.  The default is Gray.  Which	colour
		 models are accepted depends on the subdevice, see Colour Mod-
		 els in the section DESCRIPTION above.

		 A value of CMY for this option also sets BlackLevels to zero,
		 and if CMYLevels is zero when you demand any of CMY, CMY+K or
		 CMYK, it is set to two.  For RGB, effectively the  same  hap-
		 pens  as  for	CMY.  For all other situations you must ensure
		 yourself that colour model and intensity levels  are  consis-
		 tent  or  pcl3 will complain.	This rule implies that you can
		 ignore the level options unless you want to use a non-default
		 number of levels.

		 The PostScript page device dictionary entry ProcessColorModel
		 will not be correct for a  colour  model  of  CMY  or	CMY+K.
		 (Ghostscript  returns the native colour space in this parame-
		 ter, not the process colour model.)

       -dCompressionMethod=method

		 PCL interpreters understand several compression  methods  for
		 raster graphics data in order to speed up host-printer commu-
		 nication.  The possible choices are:


		 0   Unencoded, non-compressed
		 1   Runlength encoding
		 2   Tagged Image  File  Format
		     (TIFF) revision 4.0 "Pack-
		     bits" encoding

		 3   Delta Row Compression
		 9   Compressed     Replacement
		     Delta Row Encoding

		 The default method is 9 except for the subdevices hpdj, hpdj-
		 plus, and hpdj500 where it is 3 (these printers do  not  sup-
		 port  method 9),  and for the subdevices unspec and unspecold
		 where it is 2 (this seems to give  the  best  combination  of
		 portability  and  compression).  Requesting method 3 actually
		 leads to a combination of methods 2 and 3.   The  driver  may
		 temporarily  choose  method  0  if a compressed data sequence
		 would be longer than its uncompressed version.

		 Compression rates can	vary  drastically,  depending  on  the
		 structure  of the input.  However, although the absolute val-
		 ues change, the relative  order  of  efficiency  between  the
		 methods is usually the order of increasing method.  In short:
		 use method 9 if it is supported.

       -dConfigureEveryPage[=boolean]

		 This parameter, if set to true, will force the printer to  be
		 reconfigured  for  every page.  The option is superfluous for
		 printers which are truly PCL-3-conforming.

		 Use this parameter if you discover that you can print single-
		 page documents without problems but that the printer does not
		 accept multi-page files.  At present, the only printer I know
		 of  for  which  such a reconfiguration is needed is the Xerox
		 DocuPrint M750.

       -dCUPSAccounting[=boolean]

		 You will usually specify this parameter when  using  pcl3  as
		 the  final  component in a CUPS (Common UNIX Printing System)
		 driver.  It will lead to appropriate page accounting messages
		 on  standard error.  The default for this parameter is false.

		 If you have set this parameter to true you can't set it  back
		 to  false.   The  driver  will  generate a warning if this is
		 attempted.

		 When using pcl3 within CUPS you will normally set both,  CUP-
		 SAccounting  and  CUPSMessages.   There  exist, however, CUPS
		 configurations where page accounting messages should be  gen-
		 erated by a command further down the print pipeline than pcl3
		 (e.g., by a CUPS backend capable of processing PJL Page  Sta-
		 tus  messages	and  driving  a printer which sends them).  In
		 these cases you should not specify -dCUPSAccounting.

       -dCUPSMessages[=boolean]

		 Specify this parameter when using pcl3 as a  component  in  a
		 CUPS  (Common	UNIX  Printing System) driver.	It will modify
		 the format of error messages  and  warnings  as  expected  by
		 CUPS.	The default for this parameter is false.

       -dDepletion=depletion

		 This  option  is  only  available for old DeskJets (including
		 unspecold) and when printing in colour.  The  integer	deple-
		 tion  controls  an algorithm for removing certain pixels from
		 the image; this leads	to  less  ink  being  applied  to  the
		 medium.  The possible values for depletion are:


		 1   No depletion
		 2   25%
		 3   50%
		 4   25% with gamma correction
		 5   50% with gamma correction

		 The  default  value  is derived from Medium and PrintQuality.
		 The values 4 and 5 are not understood by  the	DeskJet  500C,
		 but  even  for the other printers these values are not useful
		 because PostScript permits finer control for gamma correction
		 through transfer functions (see the subsection Transfer Func-
		 tions in the next section).

       -dDryTime=delay

		 With the exception of the DeskJets 500 and  500C,  series-500
		 DeskJet  printers  can  be told to guarantee a minimum drying
		 time of delay seconds before the next page of the same  print
		 job  is  dropped on a newly printed page.  (This interval can
		 be  terminated  by  pressing  the  Load/Eject	button.)   The
		 printer  will	choose default values depending on the current
		 print quality, hence it is normally not necessary to  specify
		 this  option  and the feature is even considered obsolete for
		 post-series-500 DeskJets although it is  still  supported  by
		 some of them.

		 Permissible  values  for  delay  are null and integers in the
		 range 0 to 1200, where null instructs pcl3 not to send a cor-
		 responding command, 0 establishes default values for the cur-
		 rent print quality, and all other values  explicitly  request
		 the duration in seconds.  The default is null.

       -sDuplexCapability=capability

		 Looking  at  the  final result (sheet printed), there are two
		 kinds of duplex printing identified by the two possible  val-
		 ues  for  the	option	Tumble.   Not  all printers capable of
		 duplex printing, however, provide the hardware support neces-
		 sary for both, hence the driver must be told what the printer
		 offers in order to be able  to  compensate  for  the  missing
		 functionality.   The  parameter  capability can be any of the
		 following:


		 none		       no duplex capability
		 sameLeadingEdge       second	pass   of   sheet
				       occurs with the same lead-
				       ing edge

		 oppositeLeadingEdge   second	pass   of   sheet
				       occurs  with  the opposite
				       leading edge

		 both		       second pass of  sheet  can
				       occur with either edge

		 This  option  can only be specified for unspecold and unspec.
		 The default value is none.

		 The correct setting for the  HP  DeskJet  970C  is  opposite-
		 LeadingEdge,  but  the  printer  permits access to its duplex
		 functionality only  if  you  specify  in  addition  -sPJLLan-
		 guage=PCL3GUI	-dOnlyCRD.   (Many thanks to Dawei W. Dong for
		 an extensive series of experiments.)

		 If a printer does not offer hardware support for both	orien-
		 tations,  the	document  to  be printed must execute showpage
		 after a possible page-level restore and not before, otherwise
		 the  driver  will  not  be able to compensate for the missing
		 functionality and only one of	the  two  Tumble  values  will
		 work.	 All  DSC-3.0-conforming  PostScript  files  have  the
		 required property.

       -sIntensityRendering=method

		 Most printers, including every PCL-3+ printer I know of,  can
		 render  only a small number of intensities per pixel and col-
		 orant.  In the most frequent case, merely two levels are pos-
		 sible.   As  this  is usually not sufficient, various methods
		 have been devised to achieve a larger palette; this is possi-
		 ble  at  the  expense of spatial resolution.  Because of this
		 tradeoff between  effective  resolution  and  the  number  of
		 colours  which  can  be  distinguished, the best method for a
		 given document depends on the contents of  the  document  and
		 the user should therefore be able to select it.

		 The  pcl3 driver supports the following methods for intensity
		 rendering:


		 printer	   use	the   printer's   capabilities
				   directly

		 halftones	   use ghostscript's halftoning imple-
				   mentation

		 Floyd-Steinberg   use Floyd-Steinberg error diffusion

		 The default method is halftones.  The methods differ only  in
		 their	treatment  of  intensities which cannot be represented
		 directly by the printer.  If your document contains for exam-
		 ple only black text, they all produce the same result, albeit
		 at different speeds.

		 With printer, pcl3 will cause everything to be painted at the
		 full  hardware resolution but will have to map all colours to
		 the nearest levels the printer can represent directly.  For a
		 CMY  or  CMYK printer with two intensity levels, this results
		 in just 8 useful colours per pixel.  This value is  therefore
		 usually  only	sensible  for documents with a small number of
		 widely different  saturated  colours  where  accurate	colour
		 reproduction is of minor importance but achieving the highest
		 possible resolution is essential.  Another possible  applica-
		 tion  is  the case of PostScript input which has already been
		 adapted to the printer's resolution and  available  intensity
		 levels.

		 With halftones, ghostscript will use what looks like standard
		 PostScript halftoning algorithms.   For  details,  consult  a
		 PostScript   manual.	 However,   you   should   know   that
		 ghostscript's	current  halftoning  implementation  has  some
		 problems:

		    o  The  algorithm  cannot handle different non-zero values
		       for BlackLevels and CMYLevels.  In  this  situation  gs
		       will  in general assume that the number of black levels
		       available is equal to that for CMY  levels.   Depending
		       on  which  of  the  numbers is smaller, there will then
		       either be unused black levels or some will be used more
		       than once.

		    o  When you are using values larger than 2 for BlackLevels
		       or CMYLevels, ghostscript does not discover  by	itself
		       that  it  could	now  achieve the same number of shades
		       with smaller halftone cells.

		    o  Most of the ways of increasing the halftone screen fre-
		       quency  seem to fail.  I have been successful only with
		       the somewhat pedestrian	approach  of  using  threshold
		       arrays, and even that worked only for some cases.

		    o  For  particular	CMYK  values and with ghostscript ver-
		       sion 6 or higher, the colour becomes drastically wrong.
		       One   example  is  CMYK	=  (0.99998472,  0.002549,  0,
		       0.00367827); this should be almost a pure cyan  but  is
		       instead	displayed as a sort of pink.  If one subtracts
		       one unit in the last position for any of  the  non-zero
		       components, the result becomes acceptable.  The problem
		       has not been observed with ghostscript 5.50.

		    o  For ghostscript versions up to and including  5.50,  if
		       you  are  using	the  colour model CMYK and more than 2
		       black  levels  you  should  not	set  merely  a	single
		       halftone  screen  (setscreen,  a  type-1  or  a	type-3
		       halftone dictionary)  because  ghostscript's  dithering
		       routine can in this case return non-monotonic levels of
		       black for monotonic input intensities.  However, if you
		       specify independent halftone information for the colour
		       components, gs uses a slower but  more  accurate  algo-
		       rithm  instead  which does not lead to the wrong behav-
		       iour.  It is not necessary for the halftone information
		       to  be  different  for  different components to achieve
		       this.  Note that ghostscript installs separate halftone
		       screens	for  CMYK devices by default if the resolution
		       is at least 150 ppi.

		 Whenever you modify the halftone screens you should therefore
		 use  a test file like levels-test.ps in the pcl3 distribution
		 to check whether you obtain the desired result.  In  particu-
		 lar,  you should count the number of intensities you can dis-
		 tinguish for a single colorant: if it is  obviously  not  one
		 plus the number of pixels in the halftone cell times one less
		 than the number of hardware intensity levels,	something  has
		 gone  wrong.  This is, for example, the case if you specified
		 4 black levels and a 2x2 halftone cell, and you then can dis-
		 tinguish more than 1 + 4x3 = 13 intensity levels.  You should
		 also watch for non-monotonic jumps in	intensity  and	incom-
		 pletely filled shapes.

		 The  value Floyd-Steinberg selects Floyd-Steinberg error dif-
		 fusion as the method for rendering intensities.  Use this  in
		 particular  for printing photographs and other documents with
		 a large number of colours or small irregular shapes.  Regret-
		 tably,  pcl3's  speed is much slower with this method than in
		 the other cases, hence this value should only be used when it
		 is   really   needed	(e.g.,	 when  you  run  into  one  of
		 ghostscript's halftoning  problems)  or  when	the  delay  is
		 acceptable.

		 If you are using ghostscript 5.50 and the page to be rendered
		 needs a lot of memory (this applies in particular  to	Floyd-
		 Steinberg  in	colour)  a  core dump may result under certain
		 circumstances.  You can get around  this  by  increasing  the
		 MaxBitmap  parameter  or  by switching to a newer ghostscript
		 version.

       -dLeadingEdge=edge

		 This option can be used to specify which edge	of  the  sheet
		 will  enter the printer first.  The permitted values identify
		 this edge by reference to the	orientation  of  default  user
		 space	on  the  sheet	when  printing	with  default settings
		 (except for LeadingEdge) and a  page  size  having  width  <=
		 height ("canonical page in portrait orientation"):


		 null	No request for media orientation
		    0	Short edge; top of canonical page
		    1	Long  edge; right side of canoni-

			cal page
		    2	Short edge; bottom  of	canonical

			page
		    3	Long edge; left side of canonical

			page

		 As far as I know, given a particular  PCL-3+  printer	and  a
		 particular  media  size, you cannot choose between short edge
		 first (0 or 2) and long edge first (1 or 3): this orientation
		 is prescribed by the manufacturer and should be documented in
		 your printer's manual.  If in doubt,  use  short  edge  first
		 when inserting the medium.

		 The  default  value for edge is null.	This leads either to 0
		 or to 3, depending on whether the subdevice normally  expects
		 media	of  this  size to be fed short edge first or long edge
		 first.  See the subsection Media Sizes  and  Orientations  in
		 the DESCRIPTION section above for details.

		 If you find that you can't set this parameter from PostScript
		 but you can set it from the command line, ghostscript's  set-
		 pagedevice definition probably does not pass the parameter to
		 drivers.  Read the gs-mods.txt file in the pcl3  distribution
		 on how to fix this.

       -dManualFeed[=boolean]

		 It  is  possible  to request a DeskJet printer to wait before
		 each page of  a  document  until  the	Load/Eject  button  is
		 pressed  on  the  printer.   This  is intended for situations
		 where some special medium is used or the  medium  has	to  be
		 inserted into an input slot holding only one sheet at a time.
		 The default setting for this option is false.

		 In PCL, manual feed is established by requesting a particular
		 media	source	(2), hence you should expect that setting this
		 parameter will interfere with the input  tray	selection  via
		 InputAttributes  (see the Media Sources and Destinations sub-
		 section in the CONFIGURATION section below).

       -sMediaConfigurationFile=pathname

		 This option must specify an existing file containing  a  list
		 of  supported media sizes, sheet orientations and correspond-
		 ing margin descriptions for  the  printer.   This  will  take
		 precedence  over  the	builtin subdevice-specific lists.  The
		 format of the file is described in the CONFIGURATION  section
		 below.  This option is primarily intended to be used with the
		 subdevices unspecold and unspec.

		 The default is not to use a media configuration file but  the
		 builtin lists.  However, a media file path can also be speci-
		 fied at compile time overriding  the  default	behaviour  for
		 unspec  only.	 Using	the  MediaConfigurationFile  option in
		 addition will take precedence over the compiled-in media file
		 path.

       -dMediaPosition=position

		 This  option sets the standard PostScript page device parame-
		 ter MediaPosition to the specified value.  The integer  posi-
		 tion identifies an input tray for feeding media from and must
		 refer to an existing entry in the InputAttributes  dictionary
		 (see  the  Media  Sources  and Destinations subsection in the
		 CONFIGURATION section below) in order to  take  effect.   The
		 media	selection process will use this entry in preference to
		 others provided it matches the media request.	The default is
		 not  to request a particular tray by position but to look for
		 a best match based on	other  properties.   As  ghostscript's
		 default  configuration  defines  only	one  entry in InputAt-
		 tributes this option is ineffective unless you  modify  Inpu-
		 tAttributes.

		 With  current ghostscript versions you can't use this parame-
		 ter to select a negative position.  The driver will  issue  a
		 warning  if  you  attempt  it.   If  the  entry  is  actually
		 selected, a rangecheck error from  ghostscript  will  follow.
		 This  restriction  applies only to this device parameter, not
		 to  permissible  values  for  position  numbers  in  InputAt-
		 tributes:  if you want to use a negative position, you can do
		 so by making sure that it is the only matching  entry	or  by
		 selecting it via Priority.

       -sMedium=medium

		 This  option  selects the type of medium you wish to print on
		 as far as the printer needs to know about it.	 The  possible
		 choices are:


		 0   plain paper
		 1   bond paper
		 2   HP Premium paper
		 3   glossy paper
		 4   transparency film
		 5   quick dry glossy
		 6   quick dry transparency

		 The  default is plain paper.  For medium, you can specify the
		 full strings (these are the standard values),	the  (in  some
		 cases)  one-word  strings  resulting  from  dropping "paper",
		 "film", and "HP", or an integer.  Out-of-range numerical val-
		 ues  generate a warning but are passed through to the printer
		 if you are using a group-3  subdevice.   If  you  don't,  the
		 effect  is  the same as specifying plain paper.  The values 5
		 and 6 are unknown to most DeskJets; the only official	excep-
		 tion  I know of is the HP 2000C printer.  Your printer's man-
		 ual should tell you which kinds of medium are supported.

       -dOnlyCRD[=boolean]

		 This parameter influences the PCL code generated  and	should
		 only be specified for group-3 DeskJets.  The default value is
		 false and leads to the new PCL command Configure Raster  Data
		 being	used only when it is necessary.  Specifying true leads
		 to Configure Raster Data being used even in those cases where
		 older commands would be sufficient.

		 There	are  indications  that	printers with a PCL dialect of
		 "PCL Level 3 enhanced" need a value of true for  this	option
		 to enable some of their functionality.

       -sPageCountFile=pathname

		 The  pathname	must  specify  either a non-existent file in a
		 directory with write permission or a  writable  file  with  a
		 single  line containing a non-negative integer.  In the first
		 case, pcl3 will create the file  and  insert  the  number  of
		 pages	printed,  in the second case the number will be incre-
		 mented by that amount.  Parallel invocations of gs  are  per-
		 mitted to use the same file.  pcl3 will also make the initial
		 page count available in its page device dictionary.

		 This option is mainly intended for spooler  backends  calling
		 pcl3.	 It  can  be used to keep track of the total number of
		 pages printed and also for per-job accounting.   I  recommend
		 using this option for the first purpose and to make a note of
		 the values in the resulting files whenever you insert	a  new
		 ink  cartridge.  This will enable you to get an indication of
		 how much a printed page costs, and hence why  it  is  a  good
		 idea  to  use	draft  quality	whenever  possible and why you
		 should have bought a laser printer.

		 The driver can be compiled without this option present but on
		 a  UNIX  system  I would not expect this to be done unless gs
		 offers the same functionality in a driver-independent	manner
		 which it currently does not.

		 pcl3  is distributed with example files if-pcl3 and cups-pcl3
		 of Berkeley and CUPS spooler backends using this option.

       -sPCLInit1=string and -sPCLInit2=string

		 These options can be used to insert additional  PCL  commands
		 into  pcl3's  output.	Strings given to PCLInit1 will be sent
		 immediately after the	initial  Printer  Reset  command,  the
		 value	of  PCLInit2 will be emitted shortly before the raster
		 data of the first page.  The default is not to send any addi-
		 tional commands.

		 Don't	use  any of these options unless you understand PCL or
		 someone who does tells you which value to choose under  which
		 circumstances.

		 Because  not  every  possible string value can be passed from
		 the command line, these parameters are best set from a  Post-
		 Script file.

       -sPJLJob=[jobname]

		 This  option  can be used to surround the generated file with
		 Printer Job Language (PJL) commands declaring it to be a sin-
		 gle  print job called jobname.  If you omit jobname, you cre-
		 ate an unnamed job.  The string jobname may not contain  dou-
		 ble  quotes  or  control  characters except HT (the forbidden
		 byte codes are 0 to 8, 10 to 31, and 34).

		 Use this option if your printer understands PJL and you  dis-
		 cover	either that settings for one job influence the follow-
		 ing job or that the printer does not recognize the end of the
		 job (lights remain flashing or a control panel still displays
		 a processing message).  If you send the  generated  PCL  file
		 through   a  PJL  filter,  in	particular  one  querying  the
		 printer's state, omit this option and use the filter for this
		 purpose instead.

       -sPJLLanguage=language

		 If a printer supports several command languages and PCL 3+ is
		 not the default, the printer must be told to switch to PCL 3+
		 at  the beginning of the print job.  Hewlett-Packard's print-
		 ers use a Printer Job Language (PJL) command  for  this  pur-
		 pose.	Specifying this option will switch the printer to lan-
		 guage for the duration of the job and back to the default  at
		 the end.

		 This  option  is  not usually necessary except that there are
		 indications that printers with a PCL dialect of "PCL Level  3
		 enhanced"  need -sPJLLanguage=PCL3GUI to enable some of their
		 functionality.

		 You should never use the option unless you  have  a  reliable
		 source  for  the values of language accepted by your printer,
		 for example the output from pcl3opts for a file generated  by
		 an  official  driver  for  the printer in question.  Values I
		 have seen so far are PCLSLEEK and PCL3GUI.

		 If you send the generated PCL file through a PJL filter, omit
		 this option and use the filter for this purpose instead.

       -sPrintQuality=quality

		 There are three print quality settings:


		 -1   draft or econo
		  0   normal
		  1   presentation or best

		 The  default  is  normal.   You may specify the strings or an
		 integer.  Out-of-range numerical values will generate a warn-
		 ing  but  are	passed	through  to  the  printer  if you have
		 selected a group-3 subdevice.	If you haven't, the effect  is
		 the same as specifying normal.

       -dRasterGraphicsQuality=quality

		 This  option  is  only  available for old DeskJets (including
		 unspecold) and controls a trade-off between quality and print
		 speed.  The possible values for quality are:


		 0   Use current control panel setting
		 1   Draft
		 2   High

		 Specifying  this  option  overrides the default value derived
		 from Medium and PrintQuality.

       -dSendBlackLast[=boolean]

		 When printing with four inks, a PCL-3+  printer  expects  the
		 colour  information  for  a row of pixels in the order black,
		 cyan, magenta, and finally yellow (KCMY).

		 There exists at least	one  printer  (Olivetti  JP792)  which
		 claims  to  accept  PCL 3+  but  expects the colour planes to
		 arrive in the order CMYK.  If you have a  printer  with  this
		 property, use this option.  The default value is false.

       -dSendNULs=number

		 Most HP drivers for newer DeskJet printers generate PCL files
		 starting with a sequence of 600 NUL characters, at least  one
		 uses  even  9600  NULs.  I have seen no documentation of this
		 feature but I assume that in PCL the NUL character demands  a
		 null  operation, i.e., does nothing.  Just in case such a NUL
		 sequence is useful under certain circumstances,  this	option
		 can  be used to request it.  (It has been suggested that this
		 is needed to get the printer to accept new  PCL  commands  if
		 the  previous	print  job was aborted in the middle of a com-
		 mand.)  The value number specifies the number of NUL  charac-
		 ters  to send and must not be negative.  The default is zero.
		 Note that initial NULs might confuse spooler  backends  which
		 try  to  determine  the file type from the first few bytes of
		 the file contents.

		 There is no point in using this option if some other  command
		 in  your  print  pipeline will add Printer Job Language (PJL)
		 commands to the pcl3-generated file.

       -dShingling=shingling

		 This option is only available for group-2 DeskJets (including
		 unspecold)  and  controls the number of passes the print head
		 makes over the medium.  A higher number permits  more	neigh-
		 bouring  pixels  to  be  printed  in separate passes, thereby
		 reducing the likelihood of the ink spreading  into  the  next
		 pixel.  The possible values for shingling are:


		 0   No shingling
		 1   2 passes (50% each pass)
		 2   4 passes (25% each pass)

		 Specifying  this  option  overrides the default value derived
		 from Medium and PrintQuality.

       -sSubdevice=subdevice

		 This option identifies the printer model for which the gener-
		 ated  file  is  intended.   The  following  names  (mostly of
		 Hewlett-Packard DeskJet printers) are accepted for subdevice:


			hpdj,	hpdjplus,   hpdjportable,   hpdj310,  hpdj320,
			hpdj340, hpdj400, hpdj500, hpdj500c, hpdj510, hpdj520,
			hpdj540,   hpdj550c,   hpdj560c,  unspecold,  hpdj600,
			hpdj660c,  hpdj670c,  hpdj680c,  hpdj690c,   hpdj850c,
			hpdj855c, hpdj870c, hpdj890c, hpdj1120c, unspec.

		 The  correspondence  with  the  real printer name is, I hope,
		 obvious.  Note that hpdj does	not  select  the  hpdj	driver
		 (this	driver's  predecessor)	but configures the pcl3 driver
		 for the "classical" HP DeskJet.

		 With the exception of hpdj, unspec  and  unspecold,  your  gs
		 binary  might	support  the  subdevice  names	also as device
		 names, i.e., instead  of  specifying  -sDEVICE=pcl3  -sSubde-
		 vice=subdevice you might be able to write -sDEVICE=subdevice.
		 Check ghostscript's list of available	devices  to  find  out
		 whether this is the case (gs -h).

		 The  choice  of  subdevice primarily determines which resolu-
		 tions, colour models, intensity levels and  media  sizes  the
		 driver will accept, where the output will appear on the page,
		 and to some extent what PCL code the  driver  will  generate.
		 Several of the subdevices are treated identically.

		 The  default  subdevice  is  unspec.	It is intended for new
		 PCL-3+ printers not explicitly supported by this driver.  For
		 unspec,  all subdevice-specific checks (e.g., supported reso-
		 lutions) are turned off.  Supported media  sizes  and	margin
		 settings  are	assumed  to  be  identical  with those for the
		 DeskJets 850C/855C/870C/890C, but you can and should use  the
		 MediaConfigurationFile  option or its compile-time equivalent
		 to override this.  The  PCL  code  generated  assumes	a  new
		 DeskJet  in the sense that it should be at least of the level
		 of a DeskJet 540 supporting the PCL commands Media  Type  and
		 Print	Quality.  If you specify unequal horizontal and verti-
		 cal resolutions or more than two levels of intensity per col-
		 orant	and pixel, the printer must in addition understand the
		 Configure Raster Data command.

		 The subdevice unspecold is similar but behaves like a DeskJet
		 560C.	 It supports all colour models and all uniform resolu-
		 tions (the horizontal resolution is  equal  to  the  vertical
		 resolution).

		 If you choose to use unspec or unspecold it is your responsi-
		 bility to ensure that pcl3 is only called with parameter val-
		 ues  the  printer  can handle.  This applies in particular to
		 the resolution and the intensity levels.

		 If you set this parameter from a PostScript document you must
		 know  that doing this re-initializes most of the pcl3 parame-
		 ters to their default values.	If you set several page device
		 parameters  in  a  single  setpagedevice  call  the Subdevice
		 option will be treated first.

       -dTumble[=boolean]

		 When duplex printing is requested (-dDuplex), this  parameter
		 specifies  whether  the  y  axes of PostScript's default user
		 space on the two sides of the sheet (assumed to use the  same
		 page  size) point to the same edge or to opposite edges.  The
		 default value false indicates the same edge  and  is  usually
		 suitable  for	binding on the left while true indicates oppo-
		 site edges and should be used for binding at the top.

		 You should note that the interpretation of Tumble  refers  to
		 default  user	space: if a PostScript program has rotated the
		 user space coordinate	system	the  association  between  the
		 page's apparent "up" direction and the binding edge will usu-
		 ally not be the one desired.  You should watch  for  this  in
		 particular when creating output in landscape orientation from
		 an application still generating PostScript Level 1 code.   If
		 a  ghostscript screen driver like x11 displays the pages with
		 the right side up you should have  nothing  to  worry	about,
		 even in the case of landscape orientation.  (You must call gs
		 directly for this test, not via ghostview.)  If the  orienta-
		 tion  between	the  two sides turns out to be wrong, you will
		 have to print again with the opposite value for  Tumble.   If
		 that does not help and you have a printer supporting only one
		 of the two possible duplex orientations, check  the  relative
		 order	of  restore  and  showpage in the document you printed
		 (see the DuplexCapability option above).

       -dUseCard[=value]

		 This option should only be given when printing on A6 and with
		 a  printer  like  the	HP  DeskJet  1120C which distinguishes
		 between A6 sheets and A6 postcards.  The option can  be  used
		 to specifically request one of the alternatives.  The default
		 value is null and means that sheets are  preferred  to  post-
		 cards, but either is acceptable if supported.	The other per-
		 mitted values are true and false.

		 This option applies to all page sizes set  while  ghostscript
		 executes  and	this includes the default size set at startup.
		 If you wish to use -dUseCard=true you will therefore  usually
		 have  to  specify the PAPERSIZE option in the call, otherwise
		 an error will occur because there is no postcard variant  for
		 the usual default sizes (ISO A4 and US Letter).

   Option Combinations for Hardware Parameters
       Not  all  combinations of colour model, resolution, number of intensity
       levels, print quality and  media  type  are  accepted  or  make	sense.
       Unfortunately,  Hewlett-Packard	does  not  publicly release sufficient
       information to find the best possible combinations.  A good way to find
       reasonable  settings  is to use pcl3opts on files generated by an offi-
       cial  driver  for  the  printer.   You  should  also  check  the   file
       reports.txt  in	the pcl3 distribution.	In addition, I'll provide some
       remarks here.

       As a general rule, it is unprofitable to use a  finer  resolution  than
       300  ppi  or more than 2 intensity levels for draft quality.  A coarser
       resolution in particular can reduce the time  needed  to  generate  and
       transmit  the  file  to	the printer.  Combined with draft quality this
       leads to what HP calls an "EconoFast" mode.

       As an exception, here are recommendations based on official HP documen-
       tation  for  the DeskJet 1120C.	The table lists the resolution and the
       number of black or black and CMY levels if not 2.


	      Quality	     Gray		 CMYK
	      ---------------------------------------------------------
	      draft	     300 ppi		 300 ppi
	      normal	     300 ppi, 4 levels	 300 ppi, (4,3) levels
	      presentation   600 ppi		 300 ppi, (4,4) levels

       These seem reasonable values for the supported series-800  DeskJets  as
       well.

   Checking Page Device Parameters
       As  for all ghostscript drivers, pcl3's command line options correspond
       to identically-named PostScript page device parameters and are accessi-
       ble  in the usual way.  In particular, it is possible to read the value
       of a parameter by letting gs execute a command like


	      currentpagedevice /parameter get ==

       where parameter is the name of the parameter one would like to inspect,
       for  example  BlackLevels.   This is useful if you are in doubt whether
       the driver has accepted your options.  Of course,  for  printer-visible
       parameters you can also use pcl3opts on the output file.

       The  ghostscript  distribution  contains a program uninfo.ps which dis-
       plays the page device  dictionary  on  standard	output	but  does  not
       resolve	nested dictionaries.  The pcl3 distribution contains a similar
       program dumppdd.ps which does not have this limitation.

CONFIGURATION
   Media Configuration File
       A media configuration file (media file for short) can be used to  over-
       ride the builtin subdevice-specific lists of supported media sizes and,
       for each size, the sheet orientation in the input tray and the  margins
       enforced by the printer.  This feature is mainly intended to be used in
       conjunction with unspec and unspecold: if you have a model not directly
       supported  by this driver, look up the supported media sizes, the rules
       for inserting media and the corresponding  printable  regions  in  your
       printer's manual and enter them in a media file.

	      Caution:

	      Entering	a media size in the file which is not really supported
	      by your printer is not useful: the PCL interpreter  will	simply
	      ignore  the request to set this size, and printer and driver may
	      have diverging opinions about what the margins will be.  If  you
	      need  to	print  on  a  medium  of  a size not supported by your
	      printer, choose a larger and  printer-supported  size  in  Post-
	      Script  or  via FIXEDMEDIA, shift the image if necessary, estab-
	      lish properly-positioned clipping regions within the real  size,
	      and  print.  Or you could use a suitable page size recovery pol-
	      icy for PostScript's media selection process.  However,  if  you
	      have  a  newer DeskJet supporting custom page sizes, all this is
	      not necessary.

       Margin specifications are important for two reasons: the values for the
       left  and  top  margins	determine  how the output is positioned on the
       page, and sufficiently large values for the right  and  bottom  margins
       prevent	the  print  head being caught at the paper's edge and printing
       beyond the sheet, respectively.	Because DeskJet printers usually  have
       an  inconveniently large bottom margin (usually 0.4-0.8 inches or 10-20
       mm), one might be tempted to specify smaller values than listed in  the
       printer's  manual.   However,  one  user  reported that this led to the
       printer depositing a large wet blob of black ink at the bottom  of  the
       page.

       A  line in the media file can be blank, a comment line (first non-blank
       character is '#'), or one of the following:


	      unit   unit
	      size   left bottom  right top

       A unit line specifies in which units margin specifications in the  fol-
       lowing lines should be interpreted.  unit can either be in (inch) or mm
       (millimetre) with in being the default.	A unit	specification  remains
       in force until overridden by a following unit line.

       The  second  kind  of  line states that the model supports a particular
       media configuration and specifies the hardware  margins	in  force  for
       that case.  The size word consists of two parts: a keyword denoting the
       extension and an optional suffix.  The following keywords are  accepted
       (entries  marked  with  an asterisk (*) are those used by the subdevice
       unspec if no media file is employed; entries with  a  section/paragraph
       sign (S) similarly identify the sizes used by unspecold):


	    Index3x5in	 US index card 3 x 5 in
	      EnvChou4	 Japanese long envelope #4 (90 x 205

			 mm)
	    EnvMonarch	 US Monarch envelope  (3.875  x  7.5

			 in)
	     *Postcard	 Japanese Hagaki card (100 x 148 mm)

	   *Index4x6in	 US index card 4 x 6 in
	       S*Env10	 US no. 10 envelope (4.125 x 9.5 in)

		    A6	 ISO/JIS A6 (105 x 148 mm)
	       *A6Card	 ISO/JIS A6 postcard (105 x 148 mm)
	       S*EnvDL	 ISO DL envelope (110 x 220 mm)

	      EnvUS_A2	 US A2 envelope (4.375 x 5.75 in)

		*EnvC6	 ISO C6 envelope (114 x 162 mm)
	      EnvChou3	 Japanese  long  envelope  #3 (120 x

			 235 mm)
	   *Index5x8in	 US index card 5 x 8 in
	     Statement	 US Statement (5.5 x 8.5 in)

	DoublePostcard	 double Postcard (148 x 200 mm)
		   *A5	 ISO/JIS A5 (148 x 210 mm)

		 EnvC5	 ISO C5 envelope (162 x 229 mm)
		 ISOB5	 ISO B5 (176 x 250 mm)

		*JISB5	 JIS B5 (182 x 257 mm)
	   S*Executive	 US Executive (7.25 x 10.5 in)
		  S*A4	 ISO/JIS A4 (210 x 297 mm)
	      S*Letter	 US Letter (8.5 x 11 in)
	       S*Legal	 US Legal (8.5 x 14 in)

	      EnvKaku2	 Japanese Kaku envelope (240  x  332

			 mm)

		 JISB4	 JIS  B4  (257	x  364 mm).  This is
			 distinct from ISO  B4	(250  x  353
			 mm).
	       Tabloid	 US  Tabloid  (11  x 17 in; in land-

			 scape	 orientation   also   called
			 "Ledger")
		    A3	 ISO/JIS A3 (297 x 420 mm)
	      HPSuperB	 what HP calls Super B (13 x 19 in)
       *CustomPageSize	 custom page size

       Note the difference between A6 (sheet) and A6Card (postcard).  I do not
       know why Hewlett-Packard associates this distinction  with  media  size
       instead	of  media  type.  However, with the exception of the 1120C all
       DeskJet printers I know of use only A6Card anyway.

       In looking at your printer's documentation, bear in mind that a	driver
       might  support  more  sizes  than the printer accepts; pcl3 needs to be
       given the latter values.  If you are in doubt what your printer	under-
       stands, pcl3opts can tell you which media size another driver requests.

       Custom page sizes are not understood by older printers and may be  used
       in  a media file only for the subdevices hpdj540, hpdj6nn[c], hpdj8nnc,
       hpdj1120c, and unspec (group 3).  In these cases you can print,	within
       certain	limits,  on  arbitrarily-sized	media.	The driver knows these
       limits and refuses to generate a file if you exceed them.  For  unspec,
       there  are  no  limits.	 pcl3 will tell the printer to expect a custom
       page size only if there is no fitting discrete entry.

       Although it is possible, on those printers which support it, to	use  a
       media  configuration  file  containing only a custom page size entry, I
       advise against it because this size specification is only intended as a
       last  resort.   If you have a custom page size entry in the media file,
       you should therefore list all discrete sizes supported by your  printer
       or at least those which you expect to use.

       The  size  keyword  in  the size field can be extended by the following
       strings:

       Big	 For pcl3, this suffix means banner printing.  In these  cases

		 the  top  and	bottom	margins are usually zero.  HP DeskJets
		 supporting banner printing do so only for ISO A4 and US  Let-
		 ter.	Your  media  file  should then contain entries for the
		 sizes A4, A4Big, Letter, and LetterBig.

       .Transverse

		 By default, pcl3 assumes that the media listed are fed  short
		 edge  first.	If you specify this qualifier, the driver will
		 assume that you are going to feed media  of  this  size  long
		 edge  first.	If,  for example, your printer's manual states
		 that envelopes of size ISO DL should be fed long edge	first,
		 the  corresponding  size field in your media file should con-
		 tain the string EnvDL.Transverse, not EnvDL.

		 This specification (or its absence) can  be  overridden  with
		 the option LeadingEdge in the call.

       The  builtin  lists for the unspec and unspecold devices do not contain
       size entries with any of these suffixes.

       Every  media  file  must  contain  at  least  an   entry   which   fits
       ghostscript's  default  page  size,  usually ISO A4 or US Letter.  Only
       those sizes which are listed will be accepted by pcl3.  This  is  inde-
       pendent	of  a .Transverse suffix.  If there are several entries in the
       media file with the same size value, only the first is used.

       The margins in a size entry should be valid for monochrome printing  in
       raster graphics mode.  If a non-monochrome colour model is selected and
       unless the bottom margin is exactly zero, it will  be  increased  by  a
       subdevice-specific  amount.   This  increment is zero for unspecold and
       unspec.

       The orientation of the margins refers to  the  feeding  direction:  you
       should  imagine	holding the sheet such that the leading edge is at the
       top and the side to be printed on is  towards  you.   Be  careful  with
       envelopes:  older (pre-1997) HP documentation usually gives the margins
       in landscape orientation even for those printers where the envelope has
       to  be  fed  short  edge  first.  You can check this by looking for the
       largest margin value: if it is on the left instead of at the bottom you
       almost  certainly have such a landscape-based specification; rotate the
       values by +90 degrees (quarter-circle counterclockwise) in these cases.
       The margins have to be specified as non-negative floating point numbers
       in inches or millimetres as announced by the last preceding unit  line.
       The floating point format is that of the "C" locale.

       pcl3  is  distributed  with  an	example of a media configuration file,
       example.mcf.

   PostScript Configuration Files
       Sometimes it is desirable to execute additional PostScript commands for
       a particular file or possibly all files sent to a particular printer or
       print queue.  With ghostscript  this  is  easily  possible  because  gs
       accepts several file names in the invocation and processes them sequen-
       tially.	This is particularly appropriate for those  PostScript	opera-
       tors  which  affect  device-specific  features and should therefore not
       appear in a portable page description and for settings which  would  be
       part of the interpreter's persistent state when using a real PostScript
       printer.

       The pcl3 distribution contains examples	of  filters  if-pcl3  for  the
       Berkeley spooler lpr(1) and cups-pcl3 for the Common UNIX Printing Sys-
       tem cupsd(8).  These filters permit the use of  a  print-queue-specific
       configuration file.

   Media Sources and Destinations
       PostScript has a builtin mechanism for selecting media sources and des-
       tinations based on certain properties of the  document.	 This  usually
       requires  a  system administrator to set the InputAttributes and Outpu-
       tAttributes dictionaries in the device's page device dictionary accord-
       ing  to	the  current  state  of the printer and its intended use.  For
       example, if there are two input trays, one currently holding paper  and
       the  other  transparencies, the administrator could configure the Inpu-
       tAttributes dictionary such that print jobs  requesting	transparencies
       in  a certain manner automatically fetch media from the second tray and
       every job needing a size not currently available will terminate with an
       error  message.	 Unfortunately,  in  order  to	work  as expected this
       process usually also requires some additional action on the part of the
       entity generating the PostScript code to be printed.

       If  your  printer  is capable of sensing certain properties of media in
       the input tray (e.g.,  media  size)  or	assumes  a  fixed  association
       between media properties and input trays you must expect this function-
       ality to interfere with the process referenced here.

       In the attributes dictionaries, each tray is identified by an  integer,
       its  position  number.  When ghostscript successfully matches the docu-
       ment's requirements with  trays	the  resulting	position  numbers  are
       accessible  to  the driver.  The pcl3 driver uses these numbers (except
       0) directly as arguments for the PCL commands "Media Source" and "Media
       Destination", respectively.  For the Media Source values (input trays),
       I know of the following meanings:



	      -1   banner printing
	       1   default tray; portable CSF

		   (DJ	 340);	 tray  2  (HP
		   2500C)
	       2   manual feed
	       3   envelope feed
	       4   desktop CSF (DJ 340); tray

		   3 (HP 2500C)
	       5   tray 1 (HP 2500C)
	       7   auto select (HP 2500C)

       You'll  have  to  experiment with your printer to find out which values
       are accepted and what their interpretation is.	In  general,  you  can
       only  expect  1	and  2	to work.  Unrecognized values should be simply
       ignored by the printer leading to the medium  being  fetched  from  the
       default	tray.  To shorten the search, use pcl3opts if you can in order
       to find out which values other drivers generate.  Don't bother  testing
       the  value 0:  in PCL its effect is to eject a page and, as this is not
       needed, pcl3 uses  it  to  mean	that  no  particular  tray  should  be
       selected.

       I  do  not  know  of any PCL-3+ printer supporting more than one output
       tray, hence the corresponding implementation is based on  the  specula-
       tion that such a feature, if made available, would use the same command
       as in PCL 5.  Again, a value of zero is used by	pcl3  to  mean	"don't
       select a particular tray".

       Ghostscript's  default configuration defines InputAttributes and Outpu-
       tAttributes dictionaries with one entry each, having position number  0
       in  both cases, and maps all requests to these positions.  As explained
       above, this configuration will lead to pcl3 not requesting any particu-
       lar  input  or output tray.  If you wish to modify this you should con-
       sult a PostScript manual, for example the sections 6.2.1 and  6.2.4  in
       the  PostScript	Language  Reference.  However, I'll present here three
       examples without explanation.  In all cases, the PostScript code  shown
       should be executed before the document to be printed.

       The  first  example is intended for situations where you always wish to
       select a specific input tray:


	      <<

		/InputAttributes <<
		  0 null
		  input << /PageSize [6 6 524287 524287] >>

		>>
	      >> setpagedevice

       Replace input with the number of the tray you wish to use.  The	second
       example does the same for the output tray:


	      <<

		/OutputAttributes <<
		  0 null
		  output << >>

		>>
	      >> setpagedevice

       Replace output with the number of the tray you wish to use.

       For  the final example assume that you have one input tray, filled with
       media of a certain default size, and you wish all print jobs requesting
       another	size  to automatically switch to manual feed so you can insert
       these special sheets at leisure.  In that case, let gs execute the fol-
       lowing PostScript code:


	      <<

		/InputAttributes <<
		  0 << /PageSize [width height] >>
		  2 << /PageSize [6 6 524287 524287] >>
		  /Priority [0 2]

		>>
	      >> setpagedevice


       For  width  and	height	you  must insert the actual dimensions of your
       default size in units of 1 bp ("big point",  1/72  inch,  roughly  0.35
       mm); the tolerance is 5 bp.  In contrast to a document's page size, the
       orientation is irrelevant here.

       If you drop the second entry and the Priority line in the last  example
       you  obtain  a configuration where ghostscript will refuse to print any
       document not requesting the specified media size.  If  you  retain  the
       two  lines  and	you  are  using  the unspecold or unspec devices it is
       advisable to insert your printer's actual size bounds instead of  those
       given  above.  This will protect you against printing on some sizes not
       supported by your printer.

   Banner Printing
       Some printers support printing on continuous forms, also called banners
       or z-fold media.  Your printer's manual should tell you whether this is
       supported and in particular how to load these media.

       In order to print on continuous media with pcl3, configure it  as  fol-
       lows:

	  o  Make sure that input position number -1 will be selected (see the
	     subsection Media Sources And Destinations above).

	  o  In the call to gs, select a  subdevice  supporting  the  intended
	     "Big"  size.   By default, only the subdevices hpdj680c, hpdj690c
	     and hpdj1120c support banner printing (A4Big and LetterBig).

       Don't forget to prepare the printer as well.

   Correcting Offsets
       A media configuration file is intended to adapt pcl3 to the  difference
       in  margin  settings  between printer models and should usually contain
       "official" information, preferably taken from the model's manual.

       A different situation arises if a particular printer's  output  is  not
       properly  positioned on the page even if the margin information is cor-
       rect for this model.  PostScript defines two arrays in the page	device
       dictionary for correcting such misadjustments, both containing two num-
       bers describing a desired shift of  the	page  image  with  respect  to
       device space coordinate axes but in different units.  The values in the
       `Margins' array are interpreted with respect  to  a  canonical  default
       resolution,  the  newer	`PageOffset'  array is taken to be in units of
       1/72 inch ("big points", bp).  For pcl3 the  device  coordinate	system
       has  an	x  axis  pointing to the right and a y axis pointing downwards
       when looking at the sheet with the leading edge at the top and the side
       to  be printed on towards you.  The canonical default resolution is 300
       ppi.

       As an example, assume your printer shifts its output 1 mm to the  right
       and 0.5 mm upwards.  Now create a file containing either the PostScript
       code


	      << /Margins [-11.8 5.9] >> setpagedevice

       ("shift 11.8 pixels to the left and 5.9 pixels down") or


	      << /PageOffset [-2.8 1.4] >> setpagedevice

       ("shift 2.8 bp to the left and 1.4 bp down") and have  it  executed  by
       ghostscript before the file to be printed.

       The  margin  test  files distributed with pcl3 can be used to determine
       the necessary correction.  You should be aware that you have to	expect
       fluctuations  between individual print jobs, in particular in the hori-
       zontal direction.

   Transfer Functions
       DeskJets usually produce prints which are too dark (too much ink on the
       page), most noticeably when using more than 2 intensity levels per col-
       orant.  In this case you should perform gamma correction  by  modifying
       what PostScript calls transfer functions.  In the simplest case, create
       a file containing the PostScript command


	      {number exp} settransfer


       where a good value for number is usually  in  the  range  0.3-0.5,  and
       specify	this  file  in	ghostscript's command line before the file you
       wish to print.  Now the intensities of all colorants will  be  rescaled
       by exponentiation with number.  Because PostScript intensity values are
       in the range zero to one with zero meaning dark and one	meaning  light
       (additive  interpretation),  a value of number < 1 will lead to lighter
       colours and number > 1 results in darker colours.

       The best value for number depends on the print quality, the  number  of
       intensity  levels,  the method chosen for intensity rendering, the kind
       of medium you print on, and  the  properties  of  the  document	to  be
       printed.

       Note  that  there  is  no  common  convention for the interpretation of
       stand-alone gamma values.  When dealing with other software  you  might
       for example find that the boundary between light and dark is at a value
       of 1000 and that lighter colours are obtained with larger  values.   In
       order  to  understand what a "gamma value" means you therefore need the
       complete specification of the transfer function and, if the value  does
       not  refer  to  PostScript,  also  information on the interpretation of
       intensity values.

       You can also set independent transfer functions for the four  colorants
       by  using  the operator setcolortransfer which expects four routines as
       arguments.  Consult a PostScript manual if you want to learn more about
       transfer functions.

       If you are using -sIntensityRendering=halftones, less than 32 intensity
       levels per colorant, a resolution below 800 ppi, and unless you explic-
       itly  set  transfer  functions,	gs  applies a default gamma correction
       roughly corresponding to a value of 0.8 for number.

LIMITATIONS
   Ghostscript Version
       This manual page contains statements relying on undocumented properties
       of  ghostscript.   These statements are to my best knowledge and belief
       correct for current ghostscript versions but I do not check  all  these
       statements for every new version.

       If you are in doubt about a particular point, please check it yourself.

   Reliability
       Hewlett-Packard does not  publicly  provide  sufficiently  detailed  or
       accurate  technical  information  to write a reliable driver for all of
       its PCL-3+ printers.  The amount and quality of	available  information
       differs	between printer models.  As a consequence, pcl3 cannot provide
       the same level of reliability for all of its devices.

       In my opinion the best-documented printers are those of the DeskJet-500
       series.	In addition, I have currently access to a DeskJet 850C which I
       have used for a number of  experiments.	 Support  for  these  printers
       should be considered to be the most reliable.

       The  next  level  of  reliability belongs to the remaining printers for
       which subdevices exist.	In these cases I had at least access to  offi-
       cial  HP documentation on supported media sizes and associated hardware
       margins and in addition for almost all cases some  information  on  the
       supported  PCL  commands, sometimes complemented by PCL files generated
       by HP's official drivers and sent me by users.

       The third level of reliability is associated with  those  printers  for
       which people have sent success reports but for which I have no official
       information from HP.

       With decreasing reliability it becomes increasingly probable that there
       is  printer  functionality which is not accessible through pcl3 or even
       that this driver generates PCL code not accepted by the printer.

   Mixed Resolutions
       Some printers are able to print with different  resolutions  for  black
       and CMY on the same region of a page.  For example, the best quality on
       a DeskJet 850C is achieved with 600 ppi for black and 300 ppi for  CMY.
       This is not supported by pcl3.

   Photo Cartridges
       From  what I've heard, DeskJet printers with photo cartridges installed
       do not use a CMYK palette but instead one with 6 components.  I have no
       official  information  on  this interface and even if I had it wouldn't
       help because ghostscript does not currently support DeviceN as a native
       colour space.

   Cartridge Alignment
       DeskJet	printers  with more than one ink cartridge present should usu-
       ally be configured for the proper  relative  alignment  of  these  car-
       tridges.   Apparently,  this  information is stored in not-immediately-
       volatile memory in the printer together with some  settings  (like  the
       default	media size) which are not relevant for printing with pcl3.  As
       I do not have information on how this is done, you will need to use one
       of HP's programs for this purpose.

       On  a Linux system, try installing and running HP's DOS DeskJet control
       panel DJCP in the DOS emulator.	DJCP should be present on one  of  the
       installation media you received with your printer.  One user managed to
       get this to work for a DJ 670C with DOSEMU 0.98	under  RedHat  5.2  by
       setting


	      $_ports = "0x378 0x379"

       in dosemu.conf.	I was not successful on my Debian system.

       The  pcl3 distribution contains a file calign.ps which you can print if
       you wish to check to which extent the cartridges are aligned.

KNOWN BUGS
       There are no known bugs in pcl3 proper, but there do exist restrictions
       or  bugs  in  gs  which can lead to faulty behaviour when printing with
       pcl3.  As far as I noticed them they are mentioned in the body of  this
       manual page at the relevant points.

       You  can  find  an  up-to-date bug list for this driver via pcl3's home
       page on the Web.

SEE ALSO
       gs(1), pcl3opts(1)

       A  First  Guide	to  PostScript	(link	to   URL   http://www.cs.indi-
       ana.edu/docproject/programming/postscript/postscript.html)

       Adobe  Systems, PostScript Language Reference (link to URL http://part-
       ners.adobe.com/asn/developer/PDFS/TN/PLRM.pdf) .  Third edition,  1999.

AUTHOR
       Copyright  (C)  2000,  2001 by Martin Lottermoser, GreifswaldstraBe 28,
       38124 Braunschweig, Germany.  E-mail: Martin.Lottermoser@t-online.de.

       pcl3 has a home page  (link  to	URL  http://home.t-online.de/home/Mar-
       tin.Lottermoser/pcl3.html)  on the Web.

       This  is free software, released under the terms of the GNU Lesser Gen-
       eral  Public  License  (LGPL)  (link  to  URL  http://www.gnu.org/copy-
       left/lesser.html) , Version 2.1.  USE IT AT YOUR OWN RISK.

       Version	of  this  reference page: $Revision: 1.21 $ ($Date: 2001/08/18
       17:19:29 $).



pcl3 3.3							    GS-PCL3(1)

NAME - SYNOPSIS - DESCRIPTION - OPTIONS - CONFIGURATION - LIMITATIONS - 
KNOWN BUGS - SEE ALSO - AUTHOR -  
All manual pages         All RFC pages
Common page
for gs-pcl3
Other pages
for gs-pcl3
More pages
containing gs-pcl3
A random manual page         All manual pages        All RFC pages