============================================================================== Usage: foo2zjs-wrapper [options] [ps-file] Foomatic printer wrapper for the foo2zjs printer driver. This script reads a Postscript ps-file or standard input and converts it to Zenographics ZjStream printer format. Normal Options: -c Print in color (else black and white) -d duplex Duplex code to send to printer [1] 1=off, 2=longedge, 3=shortedge -m media Media code to send to printer [1] 1=standard, 2=transparency, 3=glossy, 257=envelope, 259=letterhead, 261=thickstock, 262=postcard, 263=labels -p paper Paper code [1] 1=letter, 5=legal, 7=executive, 9=A4, 11=A5, 13=B5 -n copies Number of copies [1] -r <xres>x<yres> Set device resolution in pixels/inch [1200x600] -s source Source code to send to printer [7] 1=upper, 2=lower, 4=manual, 7=auto -2 / -4 2-up, 4-up Printer Tweaking Options: -u <xoff>x<yoff> Set offset of upper left printable in pixels [varies] -l <xoff>x<yoff> Set offset of lower right printable in pixels [varies] -L mask Send logical clipping values from -u/-l in ZjStream [3] 0=no, 1=Y, 2=X, 3=XY -P Do not output START_PLANE codes. May be needed by some by some black and white only printers. -X padlen Add extra zero padding to the end of BID segments [16] -F firmware Prepend the contents of file 'firmware' to the job [none] Color Tweaking Options: -g gsopts Additional options to pass to Ghostscript, such as -dDITHERPPI=nnn, etc. May appear more than once. [] -G profile.icm Convert profile.icm to a Postscript CRD using icc2ps and adjust colors using the setcolorrendering PS operator. /usr/share/foo2zjs/icm/ will be searched for profile.icm. -I intent Select profile intent from ICM file [0] 0=Perceptual, 1=Colorimetric, 2=Saturation, 3=Absolute -G gamma-file.ps Prepend gamma-file to the Postscript input to perform color correction using the setcolortransfer PS operator. Debugging Options: -C plane Output just a single color plane from a color print [all] 1=Cyan, 2=Magenta, 3=Yellow, 4=Black -D lvl Set Debug level [0] -V $Id: README,v 1.15 2003/03/30 17:26:49 rick Exp $ ============================================================================== ============================================================================== Usage: foo2zjs [options] <pbm-file >zjs-file Convert Ghostscript pbm format to a black and white ZJS stream, for driving the Minolta/QMS 2300 DL network color laser printer and other Zenographics-based black and white printers. gs -q -dBATCH -dSAFER -dQUIET -dNOPAUSE \ -sPAPERSIZE=letter -r1200x600 -sDEVICE=pbmraw \ -sOutputFile=- - < testpage.ps \ | foo2zjs -r1200x600 -g10200x6600 -p1 >testpage.zm foo2zjs [options] <cmyk-file >zjs-file Convert Ghostscript (1-bit) bitcmyk format to a color ZJS stream, for driving the Minolta/QMS 2300 DL network color laser printer N.B. Color correction is expected to be performed by ghostscript. gs -q -dBATCH -dSAFER -dQUIET -dNOPAUSE \ -sPAPERSIZE=letter -g10200x6600 -r1200x600 -sDEVICE=bitcmyk \ -sOutputFile=- - < testpage.ps \ | foo2zjs -r1200x600 -g10200x6600 -p1 >testpage.zc Normal Options: -c Force color mode if autodetect doesn't work -d duplex Duplex code to send to printer [1] 1=off, 2=longedge, 3=shortedge -g <xpix>x<ypix> Set page dimensions in pixels [10200x6600] -m media Media code to send to printer [1] 1=standard 2=transparency 3=glossy 257=envelope 259=letterhead 261=thickstock 262=postcard 263=labels -p paper Paper code to send to printer [1] 1=letter, 5=legal 7=executive 9=A4 11=A5 13=B5 -n copies Number of copies [1] -r <xres>x<yres> Set device resolution in pixels/inch [1200x600] -s source Source code to send to printer [7] 1=upper 2=lower 4=manual 7=auto -J filename Filename string to send to printer [] -U username Username string to send to printer [] Printer Tweaking Options: -u <xoff>x<yoff> Set offset of upper left printable in pixels [0x0] -l <xoff>x<yoff> Set offset of lower right printable in pixels [0x0] -L mask Send logical clipping values from -u/-l in ZjStream [3] 0=no, 1=Y, 2=X, 3=XY -A Turn off: conversion of C=1,M=1,Y=1 to pure black -B Turn off: K=1 forces C,M,Y to 0 -P Do not output START_PLANE codes. May be needed by some some black and white only printers. -X padlen Add extra zero padding to the end of BID segments [16] Debugging Options: -C plane Output just a single color plane from a color print [all] 1=Cyan, 2=Magenta, 3=Yellow, 4=Black -D lvl Set Debug level [0] ============================================================================== ============================================================================== Usage: zjsdecode [options] < zjs-file Decode a ZjStream into human readable form. A ZjStream is the printer langauge used by some Minolta/QMS and HP printers, such as the 2300DL and LJ-1000. More information on Zenographics ZjStream can be found at: http://ddk.zeno.com Options: -d basename Basename of .pbm file for saving decompressed planes -r basename Basename of .jbg file for saving raw planes -o Print file offsets -D lvl Set Debug level [0] ============================================================================== GENERAL These programs convert pbm (B/W) images and 1-bit-per-pixel cmyk images (both produced by ghostscript) to Zenographics ZJ-stream format. There is some information about the ZJS format at http://ddk.zeno.com. With these utilities, you can print to some HP and Minolta/QMS ZjStream printers, such as these: - Minolta/QMS 2300 DL B/W and color - Minolta/QMS 2200 DL B/W and color - HP LaserJet 1000 B/W Please read the "INSTALL" file to see how to install this software. Please read the manual pages for more details on the program operation. $ man foo2zjs-wrapper $ man foo2zjs $ man zjsdecode BUGS AND DEFICIENCIES - Need to tune the manufacturer-supplied ICM color profiles to match the characteristics of Ghostscript. - Need to figure out how to get near-invisible dithering out of Ghostscript without affecting the colors. With GS, if you set -dDITHERING=150, for example, the dithering becomes less visible but you get areas of color blotches. No way to win. - Need to support a better input color file format which includes explicit page boundary indications. The current use of the Ghostscript "bitcmyk" format precludes having pages of different sizes within a Postscript stream. - It is not entirely clear whether the JBIG-KIT compression library produces compressed data compatible with all implementations of JBIG in ZjStream printers. It is possible that bugs or subtle implementation differences might result in incorrect printer behavior. AUTHORS The foo2zjs engine program began life as Robert Szalai's 'pbmtozjs' program. It also uses Markus Kuhn's jbig-kit compression library (included, but available at http://www.cl.cam.ac.uk/~mgk25/jbigkit/). 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. You can contact the current author at mailto://rickr@mn.rr.com The latest version of this package can be found at: http://home.mn.rr.com/richardsons/foo2zjs/ wget http://home.mn.rr.com/richardsons/foo2zjs/foo2zjs.tar.gz LICENSE This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. If you want to use this program under different license conditions, then contact the author for an arrangement. PATENTS It is possible that certain products which can be built using the jbig software module might form inventions protected by patent rights in some countries (e.g., by patents about arithmetic coding algorithms owned by IBM and AT&T in the USA). Provision of this software by the author does NOT include any licences for any patents. In those countries where a patent licence is required for certain applications of this software module, you will have to obtain such a licence yourself.