HPMODESET v2.1 
--------------

Copyright (c) Glenn Maughan 1995/1996

Many of the newer model Hewlett-Packard printers do not have a control
panel to change printer settings.  In a Windows/DOS environment you
are typically given drivers that allow you to change the printer
settings.  However, in a Unix environment such as Linux you usually
do not get such nice drivers!  I purchased a new LaserJet printer and
found I could not control it completely under Linux.  To reduce my
frustrations I developed this utility.

Hpmodeset provides a simple interface for changing printer control
settings on most printers.  Hpmodeset will encapsulate any number of
print files, such as PostScript or PCL, within printer control codes.

The usage of hpmodeset is as follows:

Synopsis:

    hpmodeset [-help | -config | -license]
    hpmodeset [<config switches>] [<printer switches>] file ...

General switches:

    -help               display this help message and current printer switches
    -config             display the printer configuration information
    -license            display the licensing information (GNU General Public License)

Configuration switches:

    -configfile=<file>  use <file> as the configuration file and store
                        in <file>.store
    -notext		do not allow unknown printer languages to be passed through as
			straight text
    -pjlonly            output PJL commands only.  Do not process file list.

Example printer switches: (default values shown in braces)

    -formlines=[5-128 {60}]
    -economode=[ON | {OFF} | on | off]
    -pageprotect=[ON | {AUTO} | on | auto]
    -resolution=[300 | {600}]
    -orientation=[{PORTRAIT} | LANDSCAPE | portrait | landscape]
    -mptray=[{CASSETTE} | MANUAL | FIRST | cassette | manual | first]
    -copies=[1-999 {1}]
    -manualfeed=[ON | {OFF} | on | off]
    -personality=[{AUTO} | PCL | POSTSCRIPT | auto | pcl | postscript]
    -ret=[OFF | LIGHT | {MEDIUM} | DARK | off | light |
        medium | dark]
    -paper=[LETTER | LEGAL | {A4} | EXECUTIVE | COM10 | MONACH |
        C5 | CL | B5 | CUSTOM | letter | legal |
        a4 | executive | com10 | monach | c5 | cl |
        b5 | custom]
    -timeout=[5-300 {15}]                                                                

All printer switches are fully configurable.  The configuration above
is for a LaserJet 5MP printer. The user can specify the switch, the
valid options and the default option.  This ability can be used to
configure hpmodeset for different printers.  The utility has been
designed to handle most printer langauges.  However this is also
configurable, and therefore it may be possible to configure for a non
PJL printer.

Following any printer control options should be a list of files to
encapsulate.  For example, to print the files `test.ps' and `test.pcl'
in economode with manual paper feeds, the following hpmodeset command
would perform the task:

	$ hpmodeset -economode=ON test.ps test.pcl | lpr

Hpmodeset can also read from stdin using `-' as the file marker.  The
following command would be the ultimate in paper and toner saving
print commands:

	$ psnup -2 test.ps | hpmodeset -economode=ON - | lpr

(psnup is available in the excellent psutils package by Angus Duggan
found on many Unix utility ftp sites.  Sorry I can't remember the site
I found it on, try archie!)

SOURCE
------

Yes the source is now distributed!  The utility is written entirely in
Eiffel.  As Eiffel is not as popular as C (yet) you may not have an
Eiffel compiler.  There are many different Eiffel compilers available
(some of them free).  I used ISE Eiffel 3.3.7 to build hpmodeset and
the source does depend on the ISE Eiffel libraries to a certain
extent, in particular the EiffelParse library.  Check out some of the
the Eiffel pages if you are interested:

             <http://ftoomsh.progsoc.uts.edu.au/~geldridg>
             <http://www.cm.cf.ac.uk/CLE/>
             <http://alto.unice.fr/~jmj/eiffel.html>

FEEDBACK
--------

Please send all bugs, suggestions and support to:

	Glenn Maughan
	<glennm@insect.sd.monash.edu.au> 

The ftp site for Hpmodeset is:

	ftp://hornet.sd.monash.edu.au/pub/hpmodeset/

