foo2zjs:   a linux printer driver for ZjStream protocol
e.g. Minolta magicolor 2200/2300/2430 DL,
HP LaserJet 1018/1020/1022/P2035,
HP LaserJet Pro CP1025nw,
HP LaserJet Pro P1102/P1102w/P1566/P1606dn

Tarball last modified: Fri Nov 07 17:45:25 2014 CST - ChangeLog

*** DON'T USE the foo2zjs package from:
     Ubuntu, SUSE, Mandrake/Manrivia, Debian, RedHat, Fedora, Gentoo, Xandros, EEE PC, Linpus, MacOSX, or BSD!
*** Download it here and follow the directions below.

foo2zjs is an open source printer driver for printers that use the Zenographics ZjStream wire protocol for their print data, such as the Minolta/QMS magicolor 2300 DL or Konica Minolta magicolor 2430 DL or HP LaserJet 1020 or HP LaserJet Pro P1102 or HP LaserJet Pro P1102w or HP LaserJet Pro CP1025nw. These printers are often erroneously referred to as winprinters or GDI printers. However, Microsoft GDI only mandates the API between an application and the printer driver, not the protocol on the wire between the printer driver and the printer. In fact, ZjStream printers are raster printers which happen to use a very efficient wire protocol which was developed by Zenographics and licensed by most major printer manufacturers for at least some of their product lines. ZjStream is just one of many wire protocols that are in use today, such as Postscript, PCL, Epson, etc.

This driver uses Ghostscript to perform all of the heavy lifting (image processing). There are five major components to the foo2zjs printer driver.

You can read the manual pages for more information.

With the foo2zjs driver, you can print to some Minolta/QMS, HP and possibly other ZjStream printers:

Supported Printer B/W Color DriverNotes
Minolta/QMS magicolor 2300 DL Yes Yes foo2zjs Tested by Rick Richardson
Minolta/QMS magicolor 2200 DL Yes Yes foo2zjs Tested by Adam Erickson.
Konica Minolta magicolor 2430 DL Yes Yes foo2zjs Tested by Ren Rebe
Minolta Color PageWorks/Pro L Yes Yes foo2zjs Tested by tekknogenius.
HP LaserJet P2035 Yes No foo2zjs Beta Quality
HP LaserJet Pro P1606dn Yes No foo2zjs Beta Quality
HP LaserJet Pro P1566 Yes No foo2zjs Beta Quality
HP LaserJet Pro P1102 Yes No foo2zjs Tested by tahir hussain. See "HP SMART INSTALL NOTES"
HP LaserJet Pro P1102w Yes No foo2zjs Tested by Rick Richardson
HP LaserJet Pro CP1025nw Yes Yes foo2zjs Tested by Rick Richardson
HP LaserJet 1022 Yes No foo2zjs Up to Fedora Core 5 is tested
HP LaserJet 1022n Yes No foo2zjs untested
HP LaserJet 1022nw Yes No foo2zjs untested
HP LaserJet 1020 Yes No foo2zjs Tested by Rick Richardson
HP LaserJet 1018 Yes No foo2zjs Tested by Rick Richardson
HP LaserJet 1005 Yes No foo2zjs Tested by Brian Batey
HP LaserJet 1000 Yes No foo2zjs Tested by Andrew Schretter
HP LaserJet M1319 MFP Yes No foo2zjs PRINTER ONLY; Alpha Quality

These printers are not supported by this driver:

Unsupported Printer Notes
HP LaserJet P1005/P1006/P1007/P1008 Supported by my foo2xqx driver
HP LaserJet P1505/P2014 Supported by my foo2xqx driver
HP LaserJet M1005/M1120 MFP Supported by my foo2xqx driver
HP LaserJet Pro M1212nf MFP Supported by my foo2xqx driver
HP Color LaserJet CP1215 Supported by my foo2hp driver
HP Color LaserJet 1600/2600n Supported by my foo2hp driver
HP Color LaserJet 2605dn Unsupported. Use Postscript
Konica Minolta magicolor 2480/2490 MF Supported by my foo2lava driver
Konica Minolta magicolor 2530 DL Supported by my foo2lava driver
Konica Minolta magicolor 1680MF/1690MF Supported by my foo2lava driver
Konica Minolta magicolor 1600W Supported by my foo2lava driver
Oki C110 Supported by my foo2lava driver
Xerox Phaser 6121MFP Supported by my foo2lava driver
Samsung CLP-300/310/315/325/360/365/600/610/620 Supported by my foo2qpdl driver
Samsung CLX-2160/3160/3175/3185 Supported by my foo2qpdl driver
Xerox Phaser 6110 Supported by my foo2qpdl driver
Lexmark C500n Supported by my foo2slx driver
Oki C301dn/C310dn Supported by my foo2hiperc driver
Oki C810 Supported by my foo2hiperc driver
Oki C3100n/C3200n/C3300/C3400n Supported by my foo2hiperc driver
Oki C5100n/C5200n Supported by my foo2hiperc driver
Oki C5500n/C5600n/C5650n/C5800n Supported by my foo2hiperc driver
Olivetti d-Color P160W Supported by my foo2hiperc driver
HP Color LaserJet 1500 Supported by my foo2oak driver
Kyocera KM-1635/KM-2035 Supported by my foo2oak driver
Dell 1355 Supported by my foo2hbpl driver
Epson AcuLaser M1400 Supported by my foo2hbpl driver
Fuji Xerox DocuPrint CM205 Supported by my foo2hbpl driver
Fuji Xerox DocuPrint M215 Supported by my foo2hbpl driver
Fuji Xerox DocuPrint P205 Supported by my foo2hbpl driver
Xerox WorkCentre 3045 Supported by my foo2hbpl driver
Xerox WorkCentre 6015 Supported by my foo2hbpl driver
Minolta/QMS magicolor 2300W/2400W/2500W Try the m2300w driver
Minolta/QMS PagePro 12xxW Try Beetman's 1200W driver or Schiller's 1[234]xxW driver
Minolta/QMS PagePro 13xxW Try Beetman's 1200W driver or Schiller's 1[234]xxW driver
Konica Minolta PagePro 14xxW Try Schiller's 1[234]xxW driver

Contribute (MUST READ)

<-- Click here to support the development of this and other printer drivers using PayPal.
Any amount is appreciated.
foo2zjs is open source software that is downloaded over the internet. No media (CD) will be shipped in exchange for your donation.

I keep a record of everyone who has contributed to this driver, in terms of 1) money or equipment, 2) usable bug reports, 3) code and advice.

There are over 403,721 unique IP addresses that have downloaded this driver. There are only a handful of people who have ever contributed to this project (and my thanks go out to them).

Download and Install

Click the link, or cut and paste the whole command line below to download the driver.

    $ wget -O foo2zjs.tar.gz http://foo2zjs.rkkda.com/foo2zjs.tar.gz

Now unpack it:

Unpack:
    $ tar zxf foo2zjs.tar.gz
    $ cd foo2zjs

Now compile and install it. The INSTALL file contains more detailed instructions; please read it now.

Compile:
    $ make

Get extra files from the web, such as .ICM profiles for color correction,
and firmware.  Select the model number for your printer:
    $ ./getweb cpwl	# Get Minolta Color PageWorks/Pro L .ICM files
    $ ./getweb 2200	# Get Minolta 2200 DL .ICM files
    $ ./getweb 2300	# Get Minolta 2300 DL .ICM files
    $ ./getweb 2430	# Get Minolta 2430 DL .ICM files

    $ ./getweb 1000	# Get HP LaserJet 1000 firmware file
    $ ./getweb 1005	# Get HP LaserJet 1005 firmware file
    $ ./getweb 1018	# Get HP LaserJet 1018 firmware file
    $ ./getweb 1020	# Get HP LaserJet 1020 firmware file

    $ ./getweb 1025	# Get HP LaserJet Pro CP1025nw .ICM files

Install driver, foomatic XML files, and extra files:
    $ su			OR	$ sudo make install
    # make install

(Optional) Configure hotplug (USB; HP LJ 1000/1005/1018/1020):
    # make install-hotplug	OR	$ sudo make install-hotplug

(Optional) If you use CUPS, restart the spooler:
    # make cups			OR	$ sudo make cups

Now create printer entries for your spooler. Create at least one queue for monochrome, and another queue for color printing. Create the queues first, then edit them and set the device options as desired. See your operating system documentation for further details on creating a printer queue. Click any hyperlinks below for sample screenshots.

For Redhat 7.2/7.3/8.0/9.0 and Fedora Core 1-5 users:
    # printconf-gui
For Fedora 6/7/.../20, and Ubuntu 7.10/8.x/.../14.x users:
    $ system-config-printer
For Mandrake/Manrivia users:
    # printerdrake
For SUSE 10.x/11.x users:
    # yast2 printer
For Ubuntu 5.10/6.06/6.10/7.04 users:
    $ sudo gnome-cups-manager
    $ sudo make cups             # IMPORTANT: gnome-cups-manager has a BUG in it
For Debian 3.x, 4.x, and other systems that use CUPS http://localhost:631
    $ firefox http://localhost:631
Command line using CUPS:
    # lpadmin -p "NAME" -v "URI" -E -P /usr/share/cups/model/file.ppd.gz
    # lpadmin -d "NAME"				# Set the default

For a networked Minolta/QMS 2300 DL, I used a Redhat "Queue Type" of "Unix Printer (LPD)", and set the "Server" to the IP address of the printer, and the "Queue" to "lp". For Ubuntu, I used "HP JetDirect" and set "Host:" to the IP address of the printer and "Port:" to 9100.

For low level testing, you can also create a "raw queue", which will accept ZjStream files as-is and send them directly to the printer.

Questions and Support

If you installed as per the above instructions, then click on our forums for questions and support.

If you installed a THIRD PARTY (e.g. Ubuntu, Gentoo, etc.) foo2zjs package, then read the INSTALL file and follow the directions. No third party support is given. You MUST install using the above procedure.

Color Correction

There are now two methods for color correction available in foo2zjs: the original ICM-based method and Gerhard Fuernkranz and Leif Birkenfeld's CRD-based method. Each method has advantages and disadvantages, which is why both methods are still included.

The original ICM-based method uses the manufacturer-supplied ICM color profiles and converts those to CRD's on the fly. This method is the fastest. But it requires Well Tempored Screening, e.g. ghostscript 8.54 or better. The advantages of the ICM method are that its the fastest of the two methods, and it often allows the foo2lava engine to optimize monochrome output on a color queue to printing just the K plane.

The CRD-based method was tuned for Ghostscript and the foo2zjs engine, and produces better colors. It also uses thresholding to make up for the halftoning issues in Ghostscript. The drawbacks of this method are that it is very slow, it requires Ghostscript 8.14 or better for best results, and it currently cannot optimize pure monochrome text printed on a color queue to printing just the K plane. It is expected that this latter deficiency will be fixed soon.

So, pick your poison.

History

The foo2zjs engine began life as Robert Szalai's pbmtozjs program. It also uses Markus Kuhn's JBIG-KIT compression library (included), and Marti Maria's icc2ps program (included).

The foo2zjs engine was overhauled by Rick Richardson to add color support for the Minolta/QMS 2300DL, add command line options, limit data chunk size to 65536 bytes, and other miscellaneous features. Rick also contributed the zjsdecode program and the foomatic database entries for the Minolta/QMS magicolor 2300 DL.

Gerhard Fuernkranz and Leif Birkenfeld created the CRD-based color correction methods.

Resources


Last modified: Sat Apr 26 03:07:22 2014 CST .