CJET - HP Laserjet Emulation for Canon CaPSL (level III+) laser printers
Copyright (c) 1996 Michael Huijsmans    

email: mgh@sbox.tu-graz.ac.at

--------------------------------------------------------------------------
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, 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 also 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.
--------------------------------------------------------------------------
Contents of this file:

0. What is Cjet?
1. Supported machines
2. Usage
3. Features
4. Notes & Bugs

See file INSTALL for compilation instructions.

See file TODO for missing features


0. What is it?
--------------

CJET filters printer data from stdin to stdout, converting HP PCL
(Printer Command Language) escape sequences and data structures,
e.g. font headers, to their CaPSL equivalents. CaPSL is short for
`Canon Printing Systems Language'. Whereas PCL is a de-facto
world-wide standard as a laser and inkjet printer control language (if
you can call a bunch of escape sequences a `language'), CaPSL is
limited to Canon laser printers. Newer laser printers from Canon come
with PCL emulation, so CaPSL may well be facing extinction.



1. Supported machines:
----------------------

The program itself should compile on any UNIX or UNIX-like system.
It even compiles under MS-DOS. (BC 3.1 and DJGPP). 

A Canon laser printer with CaPSL level III is required. 


2. Current usage:
-----------------

	cjet [options] <PCL-input >CaPSL-output

  Current options:
  ----------------

	-f      set CaPSL paint mode to 'full'. Default is 'partial'. 
		Full paint mode requires at least 1.5MB printer memory.
		Not very useful right now.

	-p	ignore paper size commands. Useful for printing files 
		formatted for paper size X on printers with paper size Y.
	
	-q	quiet mode. Suppresses all warning messages

	-x X 	shift output on paper by X dots horizontally. Positive values
		of X shift to the right; negative values to the left.
		Dots are 1/300 in.

	-y Y	shift output on paper by Y dots vertically. Positive values 
		of Y shift downwards; negative values shift upwards.


3. Features:
------------

Cjet currently `emulates' a LaserJet II and supports some PCL features
found on later LaserJet models like the LaserJet IIp, IIIp, 4l.  Not all
PCL commands are supported or fully functional; see the Missing / TODO
file TODO. The emulation is fairly complete; I emphasized the font
download and raster graphics stuff in favor of the plain text stuff 
because I needed a TeX DVI driver ASAP. Among other things, Cjet
supports the following:

- PCL Laserjet download fonts: auto-rotating and old-style landscape
  types

- PCL 5 raster compression modes 1, 2 and 3

- Roman-8, ISO Latin 1, Windows, PC-8, PC-850, PC-8D/N, and various other
  symbol sets for text - mode printing 

- PJL sequences for newer LaserJet models are parsed and ignored (dvilj4l)


Cjet was "tested" with:

- PCL output from dvilj, dvilj2p, dvilj4l: TeX DVI drivers for various
  LaserJet models:  LJ                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     