laserjet(1)
laserjet - HP LaserJet parallel printer driver
As shipped in IRIX 6.5.19. 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)