laserjet(1)

laserjet - HP LaserJet parallel printer driver

Showing IRIX 6.5.22. Unchanged since IRIX 6.5.

NAME
     laserjet - HP LaserJet parallel printer driver

SYNOPSIS
     laserjet -P printername [ options ] [ inputfile ]


DESCRIPTION
     The laserjet driver is a printer-specific driver for a HP LaserJet-series
     printer connected to an SGI /dev/plp-compatible parallel port.  laserjet
     reads STIFF format image files, writes PCL commands to the printer, and
     uses libpod(3) functions to keep the printer object database (POD)
     current, thereby providing feedback on any engine errors encountered.


     The driver opens and maintains the POD printer database files for the
     specified printer.  The file <printername>.config contains the detailed
     information on the printer's capabilities, <printername>.status contains
     the information on operational status of the printer, and
     <printername>.log contains the information on print job history.  For
     more information on the POD files refer to the libpod(3) man page.


     While laserjet has the parallel port open, no other driver may flock(3)
     the port, thus effectively reserving the printer for exclusive use by
     cooperating drivers.


INPUT FILE FORMAT
     laserjet assumes that its input is coming from its standard input (stdin)
     unless a filename is specified after any and all command line options.

     laserjet requires that its input files be in STIFF K 1-bit format.  STIFF
     is a streamable subset of TIFF 6.0.  For more information on the STIFF
     image file format, see the libstiff(3) man pages.



USAGE
     -P printername
               Specifies the printer with which laserjet is communicating.
               printername is the name under which the SystemVR3 spooler
               recognizes the printer, as given on the lp command line.  This
               option is required.


     -e        Specifies that the driver should exit immediately on fault.  By
               default, the driver waits indefinitely for faults to clear,
               retrying any errors every several seconds, where the exact
               number of seconds is defined in the POD config database
               error_retry_wait entry.  This option is useful when only a
               quick inquiry need be performed.
     -s        Specifies that the driver should exit after ascertaining
               printer status and updating the POD status file.  If an error
               is encountered, however, laserjet will block unless the -e
               switch is given as well. If a quick status update is what you
               want, invoke laserjet with both the -s and the -e options to
               insure that laserjet exits promptly.


     -w        Specify this flag to suppress warning messages in the printer
               status file. By default, warning messages such as "low on ink"
               or other non-fatal errors are written to the printer status
               file.


     -D        Turns on debugging information.  Five levels of debugging
               information are supported: none, coarse detail, medium detail,
               fine detail, and extra finer detail.  These correspond to 0, 1,
               2, 3, and 4 or more -D switches given on the command line.
               That is, multiple -D options given on the command line result
               in progressively more detailed debugging information.


     -t        Prints a test page and performs printer diagnostics.  Use this
               to verify that the printer, cables, and driver are functional.
               This option is useful when trying to narrow down the location
               of an error in printing.  If this fails, either the printer,
               the cable, or the driver (including the /dev/plp device driver)
               is at fault, but the model file, print scheduler, and rendering
               filters are not to blame.


     -m manual feed timeout (seconds)
               Use this to request manual feed.  After waiting timeout
               seconds, the driver will instruct the printer to draw paper
               from one of the trays instead of waiting for the user to hand-
               feed paper.  This is important in the case of shared printers,
               so that a negligent user cannot leave the printer without paper
               indefinitely.


     -L logfilename
               Specifies a filename to which error and debug information
               should be appended.  If this option is not specified, error and
               debug information is appended to standard error (stderr), which
               is generally redirected by the System V spooler to
               /var/spool/lp/log.


     -M MaximumCompressionMode
               Specifies the highest PCL compression mode which the driver may
               use.  This defaults to PCL compression mode 2.

     -R        Reset the parallel port immediately after opening but before
               using it.  This is not the default, but can be a useful feature
               for recalcitrant printers.  Note that some printers ignore the
               RESET signal altogether.  This includes most HP LaserJets.


     -3        Force PCL3 mode.  This disallows any commands specific to PCL4
               or later.  Specifically, PCL3 does not understand number of
               copies commands or any command which would require a full page
               buffer in the printer: no such page buffer is kept in the
               printer.  If this switch is given, multiple copies will be sent
               by complete retransmission rather than a PCL reprint command.


     -X HorizontalResolution
               Specifies the horizontal resolution at which to print, one of
               the following: 75, 150, 200, 300, or 600.  200 and 600 dpi are
               only supported on the LaserJet 4 printer at this time: other
               printers will default to 300 dpi and printed pages may print
               incorrectly when an unsupported resolution is selected.  This
               is normally derived from the printer status database, but if
               given, it overrides and will be written to the printer status
               database.


     -Y VerticalResolution
               Specifies the vertical resolution at which to print, one of the
               following: 75, 150, 200, 300, or 600.  200 and 600 are only
               supported on the LaserJet 4 printer at this time: other
               printers will default to 300 dpi and printed pages may print
               incorrectly when an unsupported resolution is selected.  This
               is normally derived from the printer status database, but if
               given, it overrides and will be written to the printer status
               database.


     -S PaperSize
               Specifies the papersize to request from the printer.  This may
               be any papersize recognized by libpod(3), but only those sizes
               listed in the printer configuration file should be used.  This
               is normally derived from the printer status database, but if
               given, it overrides and will be written to the printer status
               database.


     -O filename
               Output data to filename instead of the device port or standard
               output.  The data will not be printed; the data that would have
               been sent to the printer had the -O option not been specified
               will instead be saved to filename.

EXIT CODES
     The driver normally exits with an exit code of zero (0), denoting no
     error.  A number of exit codes are supported to give more information
     about unsuccessful exits.  Remember that the driver will not exit on
     recoverable errors unless the -e switch is given.

     The error codes 1 through 18 denote the following meanings, in order:

          CODE    REASON
             1       unknown error
             2       bad command line or img header args
             3       bad POD database access
             4       bad device name
             5       bad device type
             6       bad status update
             7       unsuccessful device access
             8       bad memory reference
             9       failed memory allocation
             10      invalid data format
             11      invalid data header
             12      short or empty input data file
             13      short or empty firmware code file
             14      bad or short input data file
             15      failed transmission
             16      data buffer invalid
             17      test print failed
             18      firmware download failed.


     A common error exit is on empty input: the driver will return error code
     12, indicating a short or empty input file, whenever the PostScript
     interpreter (or another upstream filter) dies before a full page of data
     was written to the driver.  This can happen when bad PostScript code is
     sent to be printed, for instance.  In this case, the spooler log file
     (/var/spool/lp/log) should be consulted to determine which filter failed;
     an error should have been written to this file by the dying filter or
     driver.


CAVEATS
     laserjet will not exit on spooler job cancellation (SIGTERM) until its
     input has been completely copied to the output device.  This means that
     if a printer is unable to accept data, cancelling the job will not kill
     the laserjet process.  To do so, you must explicitly kill the process
     with SIGKILL (9), or reboot the machine.  This behavior is required so
     that job cancellation does not leave the printer in a wedged state:
     cancelling in the middle of a raster page would leave many parallel
     printers in a bad state which could eat several subsequent print jobs.

KNOWN BUGS
     Manual feed requests are currently ignored: since the driver does not
     implement manual feed timeouts, manual feed has been disabled.

     PCL raster image compression modes 1, 3, 4, 5 are not implemented.  Also
     raster compression could be faster if lines with no data and the blank
     ends of lines were skipped.


SEE ALSO
     impressario(1), printstatus(1), printpanel(1), libpod(3), libspool(3),
     libstiff(3), lp(1)