👤
Home Man
Search
Today's Posts
Register

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:
Select Section of Man Page:
Select Man Page Repository:

RedHat 9 (Linux i386) - man page for gs-pcl3 (redhat section 1)

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  | -sColor-
       Model=model  | -sColourModel=model  | -dCompressionMethod=method   |  -dConfigureEveryPage
       |  -dCUPSAccounting   |	-dCUPSMessages	 |  -dDepletion=depletion  | -dDryTime=seconds	|
       -sDuplexCapability=capability   |  -sIntensityRendering=method	|  -dLeadingEdge=edge	|
       -dManualFeed    |   -sMediaConfigurationFile=pathname	|   -dMediaPosition=position	|
       -sMedium=medium	 |  -dOnlyCRD	|  -sPageCountFile=pathname    |   -sPCLInit1=string	|
       -sPCLInit2=string   | -sPJLJob=jobname  | -sPJLLanguage=language  | -sPrintQuality=quality
       | -dRasterGraphicsQuality=quality   |  -dSendBlackLast	|  -dSendNULs=number   |  -dShin-
       gling=shingling	| -sSubdevice=subdevice  | -dTumble  | -dUseCard=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 mod-
       ification of PCL 3+.  This driver should basically 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 Mi-
       crosoft 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 generated PCL code is intended.  The model-dependent difference
       in  the	generated  code  is  not great.  Apart from media specifications, resolutions and
       colour capabilities, one can consider three groups of models which are treated  with  sig-
       nificant 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 consists 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 subdevices 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-depen-
       dent 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.Lotter-
       moser/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 classi-
       fied 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/yellow (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 bleeding".)

	  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 converse  does  also
       occur.  In addition, ghostscript is generally fastest for Gray.

       PCL 3+  also  supports  the colour model RGB although Hewlett-Packard discourages its use.
       For this model the printer internally converts the RGB data it receives into CMY data  for
       printing.   Note  that  not  everything	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  orien-
       tation)	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 orienta-
	     tion),

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

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

       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 orientation 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  print-
       ers  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 necessary.  (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  dif-
       ferently from other sizes.

       The  subdevice  unspecold  accepts all sizes supported by the HP DeskJet 560C, unspec sup-
       ports all discrete sizes known to the HP DeskJets 850C/855C/870C/890C and treats in  addi-
       tion 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 pro-
       vided and the driver must know what its orientation with respect to the printing mechanism
       is.   The latter is usually specified by reference to the feeding direction as "short edge
       first" or "long edge first".  Don't  confuse  this  kind  of  orientation  with	the  por-
       trait/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 orientations 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 orientation 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
       assumption with an InputAttributes definition (see the Media Sources and Destinations sub-
       section 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  complete  statement  from Hewlett-Packard about what is
       required in this respect, hence you should check your printer's manual whether the assump-
       tions  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 CONFIG-
       URATION 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 specifications are
       mapped to the older Depletion, Shingling, and Raster Graphics Quality  commands	based  on
       recommendations from HP.  If you are not satisfied 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 com-
       ponent:".  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 mod-
       ule  generating PCL without being aware of ghostscript, and pcl3 is the driver proper con-
       necting 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 others 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 following ones, given here in the	order  of
       their  importance: -sDEVICE, -sSubdevice, -sColourModel, -r, -sPrintQuality, and -sMedium.
       You should also check whether there is an entry in the reports.txt file in the  pcl3  dis-
       tribution 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.htm (link to URL Use.htm)  and the  section
       Device parameters (link to URL Language.htm#Device_parameters) in Language.htm).

       -sDEVICE=pcl3
		 This  specification  selects  the  pcl3  driver, but this is not the only way to
		 select it with this option.  See the description 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 DuplexCapability 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 psse-
		 lect(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.  Reso-
		 lutions 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  resolu-
		 tion 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 interpretation: the value given to  pcl3  must
		 be a resolution supported 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 manufac-
		 turer-endorsed  driver for your printer, use pcl3opts to find out about the set-
		 tings 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 gener-
		 ated 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 levels 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 restric-
		 tions 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	levels	per  col-
		 orant.

       -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 Models 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  happens  as  for CMY.	For all other situations you must
		 ensure yourself that colour model and intensity levels are  consistent  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  cor-
		 rect for a colour model of CMY or CMY+K.  (Ghostscript returns the native colour
		 space in this parameter, not the process colour model.)

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

		 0   Unencoded, non-compressed
		 1   Runlength encoding
		 2   Tagged  Image File Format (TIFF)
		     revision 4.0 "Packbits" encoding
		 3   Delta Row Compression
		 9   Compressed Replacement Delta Row
		     Encoding

		 The  default  method  is 9 except for the subdevices hpdj, hpdjplus, and hpdj500
		 where it is 3 (these printers do not support 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  combina-
		 tion  of  methods 2 and 3.  The driver may temporarily choose method 0 if a com-
		 pressed 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 values 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-con-
		 forming.

		 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,  CUPSAccounting  and
		 CUPSMessages.	 There	exist, however, CUPS configurations where page accounting
		 messages should be generated by a command further down the print  pipeline  than
		 pcl3 (e.g., by a CUPS backend capable of processing PJL Page Status 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  warn-
		 ings 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 depletion 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 correc-
		 tion  through	transfer  functions (see the subsection Transfer Functions 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  neces-
		 sary  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 corresponding command, 0 establishes default
		 values for the current 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 values for the option Tumble.	 Not  all
		 printers  capable of duplex printing, however, provide the hardware support nec-
		 essary 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 capabil-
		 ity can be any of the following:

		 none		       no duplex capability
		 sameLeadingEdge       second pass of sheet occurs with
				       the same leading 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  oppositeLeadingEdge,  but  the
		 printer  permits access to its duplex functionality only if you specify in addi-
		 tion -sPJLLanguage=PCL3GUI -dOnlyCRD.	(Many thanks to  Dawei	W.  Dong  for  an
		 extensive series of experiments.)

		 If a printer does not offer hardware support for both orientations, 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-con-
		 forming 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 colorant.	In the most frequent case, merely
		 two  levels  are  possible.   As this is usually not sufficient, various methods
		 have been devised to achieve a larger palette; this is possible 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 docu-
		 ment contains for example 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 res-
		 olution 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 application 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 prob-
		 lems:

		    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 frequency 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 version 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 posi-
		       tion 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 dictio-
		       nary) 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 algorithm instead which does not lead to
		       the wrong behaviour.  It is not necessary for the halftone information  to
		       be  different  for different components to achieve this.  Note that ghost-
		       script 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 particular, you should count the number of intensities you
		 can distinguish for a single colorant: if it is obviously not one plus the  num-
		 ber  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 distin-
		 guish more than 1 + 4x3 = 13 intensity levels.  You should also watch	for  non-
		 monotonic jumps in intensity and incompletely filled shapes.

		 The  value Floyd-Steinberg selects Floyd-Steinberg error diffusion 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.
		 Regrettably, 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 ori-
		 entation 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 setpagedevice definition probably does not
		 pass the parameter to drivers.  Read the gs-mods.txt file in the pcl3	distribu-
		 tion on how to fix this.

       -dManualFeed[=boolean]
		 It  is possible to request a DeskJet printer to wait before each page of a docu-
		 ment 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  set-
		 ting 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
		 subsection in the CONFIGURATION section below).

       -sMediaConfigurationFile=pathname
		 This option must specify an existing file containing a list of  supported  media
		 sizes, sheet orientations and corresponding 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 specified 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 parameter MediaPosition to
		 the specified value.  The integer position 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  InputAttributes this option is ineffective unless you modify InputAt-
		 tributes.

		 With current ghostscript versions you can't use this parameter to select a nega-
		 tive 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 InputAttributes: 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
		 exception  I know of is the HP 2000C printer.	Your printer's manual 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 com-
		 mand 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 inte-
		 ger.	In  the  first	case,  pcl3 will create the file and insert the number of
		 pages printed, in the second case the number will be incremented by that amount.
		 Parallel  invocations	of gs are permitted 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 car-
		 tridge.  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 additional 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 PostScript file.

       -sPJLJob=[jobname]
		 This option can be used to surround the generated file with Printer Job Language
		 (PJL)	commands  declaring  it  to be a single print job called jobname.  If you
		 omit jobname, you create an unnamed job.  The string  jobname	may  not  contain
		 double  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  discover  either  that
		 settings  for	one  job influence the following 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  printers  use  a  Printer Job Language (PJL) command for this
		 purpose.  Specifying this option will switch the printer  to  language  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 warning 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  con-
		 trols	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 command.)  The
		 value number specifies the number of NUL characters to send and must not be neg-
		 ative.  The default is zero.  Note that initial NULs might confuse spooler back-
		 ends 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 pipe-
		 line 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 neighbouring  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 generated 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 -sDE-
		 VICE=pcl3 -sSubdevice=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 resolutions,  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 resolutions) 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 vertical resolutions or more than two levels of
		 intensity per colorant 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  resolutions  (the  horizontal  resolution  is
		 equal to the vertical resolution).

		 If  you  choose  to  use unspec or unspecold it is your responsibility to ensure
		 that pcl3 is only called with parameter values 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 parameters 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 opposite 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 associ-
		 ation	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  cre-
		 ating output in landscape orientation from an application still generating Post-
		 Script 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 orientation 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 ori-
		 entations, 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 postcards,  but  either  is
		 acceptable if supported.  The other permitted 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, other-
		 wise 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 qual-
       ity 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  official
       driver  for the printer.  You should also check the file reports.txt in the pcl3 distribu-
       tion.  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 documentation 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 accessible in the usual way.  In  particu-
       lar, 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 Black-
       Levels.	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 displays the page device
       dictionary on standard output but does not resolve nested dictionaries.	The pcl3  distri-
       bution 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 override the builtin sub-
       device-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 PostScript or via FIXEDMEDIA, shift the image
	      if necessary, establish properly-positioned clipping regions within the real  size,
	      and  print.  Or you could use a suitable page size recovery policy 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 mar-
       gins 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  incon-
       veniently  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 following 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 understands, 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 spec-
       ification 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 Letter.	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 contain 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 independent 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 sequentially.  This is particularly appropriate for those PostScript operators  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 System 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 destinations based on
       certain properties of the document.  This usually requires a system administrator  to  set
       the  InputAttributes and OutputAttributes dictionaries in the device's page device dictio-
       nary according 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 InputAttributes dictionary such that print jobs request-
       ing  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 addi-
       tional 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 functionality to interfere with the process referenced here.

       In the attributes dictionaries, each tray is identified by an integer, its  position  num-
       ber.   When  ghostscript  successfully  matches the document's requirements with trays the
       resulting position numbers are accessible to the driver.  The pcl3 driver uses these  num-
       bers  (except 0) directly as arguments for the PCL commands "Media Source" and "Media Des-
       tination", respectively.  For the Media Source values (input trays), I know of the follow-
       ing 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 corre-
       sponding implementation is based on the speculation that such a feature,  if  made  avail-
       able,  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	OutputAttributes  dictio-
       naries  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 request-
       ing  any particular input or output tray.  If you wish to modify this you should consult 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 following 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 con-
       figuration where ghostscript will refuse to print any document not requesting  the  speci-
       fied  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 follows:

	  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  print-
	     ing (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 correct for this model.  PostScript  defines
       two arrays in the page device dictionary for correcting such misadjustments, both contain-
       ing two numbers 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 correc-
       tion.   You  should be aware that you have to expect fluctuations between individual print
       jobs, in particular in the horizontal 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 colorant.  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 prop-
       erties of the document to be printed.

       Note that there is no common convention for the interpretation of stand-alone  gamma  val-
       ues.   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  Post-
       Script, also information on the interpretation of intensity values.

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

       If  you	are  using -sIntensityRendering=halftones, less than 32 intensity levels per col-
       orant, a resolution below 800 ppi, and unless you explicitly 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  ver-
       sions 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  addi-
       tion,  I have currently access to a DeskJet 850C which I have used for a number of experi-
       ments.  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 official 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 func-
       tionality 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  inter-
       face  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 usually be configured for
       the proper relative alignment of these cartridges.  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  pur-
       pose.

       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.indiana.edu/docproject/program-
       ming/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/Martin.Lotter-
       moser/pcl3.html)  on the Web.

       This  is  free software, released under the terms of the GNU Lesser General Public License
       (LGPL) (link to URL http://www.gnu.org/copyleft/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)


All times are GMT -4. The time now is 10:06 AM.

Unix & Linux Forums Content Copyrightę1993-2018. All Rights Reserved.
×
UNIX.COM Login
Username:
Password:  
Show Password