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.htm (link to URL Use.htm) and the section
Device parameters (link to URL Language.htm#Device_parameters) in Lan-
guage.htm).
-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, 600
pcl3 3.3 GS-PCL3(1)