Contact Us      |      Customer Service      |      Cartridge Search:  
HACKER SAFE certified sites prevent over 99.9% of hacker crime.
Discount inkjet and printer cartridges
0 items $0.00
Apple printer cartridgesCanon printer cartridgesEpson printer cartridgesHewlett Packard printer cartridgesIBM printer cartridgesLexmark printer cartridgesXerox printer cartridges
 
 

pcl3

Back to Printer Cartridge Articles

What is pcl3?

pcl3 is a ghostscript device driver for printers understanding Hewlett-Packard's Printer Command Language, level 3+ (PCL 3+, also called "PCL 3 Plus"). This applies in particular to some but not all HP DeskJet printers. The driver was therefore initially called "hpdj" but was renamed "pcl3" with version 3.0 in order to avoid raising expectations for non-PCL DeskJets.

Originally, the main design goals of this driver were maintainability, reliability, and support for "new" DeskJets, starting with the HP DeskJet 540. For version 3, I wanted to have in addition a substantial proportion of reusable software components.

Reliability is mainly achieved by strict adherence to HP's official documentation, as far as it can be obtained. Unfortunately, the information offered by Hewlett-Packard is not as up-to-date as I could wish. However, it seems that I have achieved my goal in this respect because since its first public release in March 1997 (hpdj 2.0) the driver has turned out to be able to support a gratifyingly large number of PCL-3 printer models beyond those for which it was originally written. In fact, although there have been cases where the driver did (or still does) not support some features relying on undocumented PCL-3 commands, in the region where a printer's capabilities intersect with the set of documented PCL-3 commands used by the driver, pcl3/hpdj has been successful out of the box in every single case I heard of. It now even supports some printers which claim to be PCL-3-conforming but aren't.

The code lists all the documentation used in order to enable everyone to evaluate the driver's quality.

Features

The main features of pcl3 are:

  • Extensive end user documentation
  • Support for various printer models. The driver has specific knowledge of a large number of HP DeskJets plus generic support for other PCL-3 printers. The distribution includes a command pcl3opts which is able to guess pcl3 invocation options from PCL files generated by other drivers.
  • Several process colour models (Gray, RGB, CMY, CMY+K, and CMYK)
  • Variable resolution
  • Support for the hardware part of HP's Color Resolution Enhancement technology (C-REt)
  • Variable print quality (draft, normal, presentation)
  • Variable media type (plain paper, transparencies, etc.)
  • Several methods for intensity rendering, including Floyd-Steinberg error diffusion
  • Substantially better integration with PostScript's media handling than usual in almost all ghostscript drivers:
    • recognition of media sizes from the document,
    • adaptation to landscape orientation as required by the PostScript language definition,
    • support for long-edge feed.
  • The driver permits using the following functionality if supported by the printer:
    • Input or output tray selection
    • Banner printing (printing on continuous forms)
    • Duplex printing
  • Support for integration with spoolers (PPD files, filters for the Berkeley spooler and for CUPS)
  • Page counting across invocations (useful to determine, e.g., ink costs per page)

pcl3 does not support different resolutions for black and CMY colorants, i.e., there is no combined 600 ppi black + 300 ppi CMY mode, and it does not support photo cartridges.

Supported Printers

pcl3 is in particular intended for the following printers:

  • 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 current list of printer models for which pcl3 is known to work is:

  • HP 2000C
  • HP 2500CM
  • HP DeskJet 670C
  • HP DeskJet 697C
  • HP DeskJet 850C
  • HP DeskJet 940C
  • HP DeskJet 970C
  • HP DeskJet 1100C
  • Xerox DocuPrint M750
  • Xerox WorkCentre M940
  • Details on how to call pcl3 for these printers are contained in the file reports.txt. In addition, I have received informal statements that pcl3 can also be used with the following models:

  • HP DesignJet 500
  • HP DeskJet 340
  • HP OfficeJet T45
  • SHARP AJ-1800
  • SHARP AJ-1805
  • SHARP AJ-2000
  • SHARP AJ-2005
  • Xerox Docuprint 760
  • Previous (hpdj) versions were reported to work also with the following printers:

  • HP DeskJet 400 (tested for monochrome only)
  • HP DeskJet 420
  • HP DeskJet 500
  • HP DeskJet 500C (tested for monochrome only)
  • HP DeskJet 520
  • HP DeskJet 540
  • HP DeskJet 560C
  • HP DeskJet 600
  • HP DeskJet 610C
  • HP DeskJet 612C
  • HP DeskJet 660C/660Cse
  • 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
  • Lexmark 3000 Color Jetprinter
  • Olivetti JP792
  • It is extremely likely that pcl3 can also be used for these printers, but so far I have not received reports for them. My impression is even that every PCL-3-conforming printer can be made to print with pcl3 although not all of the printer's capabilities might be accessible.

    If your printer is not contained in the lists above, you should also check the entry for pcl3 at LinuxPrinting.org. Howver, in my experience the information there is not always reliable.

    You should be aware that Hewlett-Packard does not only produce PCL-3 ink jet printers. If the 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 using HP's Printing Performance Architecture (PPA) commands and is intended exclusively for systems running Microsoft Windows. (These printers are sometimes erroneously called "GDI printers" because they are expected to be driven by a manufacturer-supplied driver via Windows' GDI interface.) HP does not release the PPA interface specifications. Nevertheless, it is possible to access at least a PPA printer's basic features with ghostscript; see for example http://sourceforge.net/projects/pnm2ppa.

    Availability

    pcl3 is free software, available under the terms of the GNU Lesser General Public License (LGPL), Version 2.1. The main location for pcl3 distributions is the directory http://Martin.Lottermoser.bei.t-online.de/pcl3dist. Look for files named pcl3-version.tar.gz.

    I am distributing this driver only in the form of gzipped tar archives containing the source code. If you wish to compile pcl3, you need gzip, tar (on systems running Microsoft Windows you can use the Cygwin port of the GNU tools), and a command to convert text files from LF-terminated lines to whatever the line termination conventions are on your system. If you do not even have a C compiler, see the remarks below on precompiled ghostscript distributions.

    Occasionally, I have been asked why this driver is not part of the main ghostscript distributions. That is a long story. I offered hpdj to L. Peter Deutsch twice, in September 1996 and in March 1997, but he declined on both occasions. The first time hpdj did not yet contain colour support (actually, he offered to pay me for implementing a fully usable DeskJet driver, but I in turn declined because I wished to distribute the driver immediately under a GNU license), and the second time he would have preferred an integration with the uniprint driver because there are already so many ink jet drivers. These considerations did, however, not stop him from including the make configuration for Uli Wortmann's new DeskJet driver in the official gs distribution shortly afterwards. This suggested that he had other reasons than those stated for not being interested in hpdj and I therefore gave up on this point. (Although he at least added a reference to hpdj in new-user.txt in gs 5.01, this was silently removed some time after 5.10 and before 5.50.)

    In December 1999, triggered by hpdj users, L. Peter Deutsch in his turn approached me and asked whether I would consent to the driver being distributed under the AFPL. He was under the impression that hpdj is released under the GNU GPL whereas it is actually distributed under the terms of the GNU LGPL. Under the latter, it can be included in an AFPL ghostscript distribution without needing my explicit consent. Hence L. Peter Deutsch decided (still in December 1999) that he would include it in the future or at least add a reference to it in the documentation. Neither had happened when he passed the maintainership to Raph Levien in September 2000.

    In October 2001, Raph Levien accidentally came across this web site and offered to include the driver in the ghostscript distribution. Again, there was a slight hitch: I was told that artofcode LLC was not particularly happy with a driver licensed under the GNU LGPL and would have preferred to distribute it under the AFPL. This in turn presented me with a problem: as the AFPL for ghostscript explicitly states that artofcode LLC holds the copyright for the program as a whole (see also the copyright notices in the source code of contributed drivers), my consent to distributing this driver under the AFPL would obviously imply that I've transferred certain rights to artofcode LLC. I therefore asked immediately which rights in my source code artofcode LLC would need and in particular which rights I would have to give up. This e-mail message was never answered, and there the matter rests.

    I conclude from all this that the key property which has prevented pcl3 from being included in the main ghostscript distributions is it being licensed under the terms of the GNU LGPL. As long as no one is able to show me any argument why this is a bad thing for end users, I have no intention to change the license.

    You will therefore usally have to fetch pcl3 separately and to recompile ghostscript. However, several free UNIX distributions (S.u.S.E. Linux, FreeBSD and Debian GNU/Linux) have been including hpdj in their ghostscript packages since 1997/1998, Red Hat Linux followed substantially later. Mandrake Linux was one of the first distributions to provide pcl3 version 3, but others have followed. Since July 2002, pcl3 is also contained in the ESP Ghostscript distribution. Note, by the way, that none of these organizations had any problems with hpdj/pcl3 using the GNU LGPL.

    There is even good news for Microsoft Windows users: Denver Technology, Australia, having needed a Windows version of pcl3 in one of their projects, have generously made a package they built available for public download.

    Disclaimer

    I do not offer any guarantee that this driver is harmless for your printer, your cat's life, or the future of the universe. USE IT AT YOUR OWN RISK!

    Bug List

    You can find the current bug list for pcl3 here.


    Alternatives

    pcl3 is not the only ghostscript driver generating PCL 3.

    Apparently the first implementation was George Cameron's cdj driver which was intended for most of the DeskJet 500 series printers. It is still contained in all ghostscript distributions. I started the development of hpdj in 1996 because I found cdj's functionality insufficient for the printer I had bought and its source code not sufficiently intelligible to be easily modified. This was reflected in hpdj's design goals.

    Gunther Hess has written the uniprint driver which has been included in ghostscript distributions since version 4.70. It was intended to become a universal driver for ink jet printers and evolved from the cdj driver via the stcolor driver.

    Uli Wortmann has modified the cdj driver for series-800 DeskJets. His cd8 driver became part of the main ghostscript distribution in gs 5.67, was removed in gs 6.22 from the AFPL distribution (because of its license), was again added to GNU ghostscript 6.51 but is no longer contained in GNU ghostscript 7.05.

    At least two people have modified Uli's driver for other printers. The modification by Matthew Gelhaus (device cdj880) is available via www.gelhaus.net, the variant implemented by René Harsch for the DJ 970C can be found at www.harsch.net.

    Apart from the driver by René Harsch which was apparently never known to the official developers, all the preceding drivers have been marked as deprecated in November 2002 (AFPL ghostscript 8.00) and will no longer be supported in the core distribution.

    Newer implementations include the Gimp PCL driver and the driver from the HP Linux Inkjet Driver Project. The database at LinuxPrinting.org is a good starting point if you wish to search for drivers.

    If you are unable to find a driver satisfying your requirements among these choices, you can of course always write a new one. This seems to have become increasingly popular in recent years but in my opinion it has not always been undertaken with a sufficient knowledge of professional software development, PostScript, ghostscript, or PCL: most source code is poorly documented, hardly anyone seems to have realized that ghostscript's driver API does not insulate the drivers completely from the demands of PostScript, and very few people give references to the PCL documentation used (which makes it difficult to determine which PCL dialect the printer must support). In looking at such drivers, one often gets the impression of being faced with an amateur effort undertaken for the fun of it and not because the authors recognized a gap to be filled. This agrees with the observation that most of these authors refer to hardly any other PCL-3 drivers in their documentation or source code; they do not seem to have looked for any.

    However, don't get me wrong: it's perfectly in order to write a new driver just for the fun of it, even if it offers only functionality already implemented by existing drivers. But if you start publishing it for other people to use you have certain responsibilities concerning usability, reliability, documentation, and maintenance. This is sometimes ignored.

    The pcl3 distribution contains a document discussing various issues you should consider if you wish to embark on writing a new ghostscript driver.

    Copyright (C) 1997-2003 by Martin Lottermoser. Reprinted with permission. Author: Martin Lottermoser, Greifswaldstrasse 28, 38124 Braunschweig, Germany. For more infomation, Click Here

    All Printer Cartridge Articles

    1 -  2 -  3 -  4 -  5 -  6 -  7 -  8 -  9 -  10 -  11 -  12 -  13 -  14 -  15 -  16 -  17 -  18 -  19 -  20 -  21 -  22 -  23 -  24 -  25 -  26 -  27 -  28 -  29 -  30 -  31 -  32 -  33 -  34 -  35 -  36 -  37 -  38 -  39 -  40 -  41 -  42 -  43 -  44 -  45 -  46 -  47 -  48 -  49 -  50 -  51 -  52 -  53 -  54 -  55 -  56 -  57 -  58 -  59 -  60 -  61 -  62 -  63 -  64 - 

     
    1.
    2.
    3.
     
    1.
    2.
    All printer cartridges and ink refill kits are 100% GUARANTEED!
    Spend $39 or more and get free shipping with your order!  Also take advantage of same-day and next-day shipping on all printer cartridges.

     Friendly & Knowledgible Staff

     Secure Credit Card Processing

     Privacy Protection

     Thousands of Printer Cartridges In Stock

     High Quality Printer Cartridges & Refill Kits


    Call toll free 1-888-827-3345

     

    Quick Links:
    Canon
    BC-20 ink cartridge
    BCI-3eBK printer cartridge
    BCI-5M inkjet cartridge
    BCI-21C printer ink
    BCI-24C printer ink
    BC-23 toner cartridges
    BCI-5BK ink cartridges
    Epson
    S020108 ink cartridge
    T008201 printer ink
    S020191 printer cartridges
    S020189 ink cartridge
    T017201 inkjet cartridge
    T040120 printer ink
    T026201 inkjet cartridge
    Hewlett Packard
    51641A inkjet cartridge
    C7115A ink cartridges
    51625A printer cartridges
    51645A ink cartridges
    51640Y inkjet cartridge
    51626A toner
    C6578AN ink
    Lexmark
    12A1980 inkjet cartridge
    10N0016 ink cartridges
    10N0026 printer ink
    18L0032 inkjet cartridges
    12A1970 inkjet cartridge
    15M0120 printer cartridge
    17G0060 inkjet cartridge
    PRINTER REVIEWS
    Check out our printer reviews before you buy your next printer.

    Epson Printers
    Lexmark Printers
    HP Printers
    Canon Printers
    All Printer Reviews

    Laser Toner - Find huge discounts on laser toner cartridges! Our compatible laser toner cartridges are the smart buy!. Buy Laser Toner...