United States-English |
|
|
HP-UX Reference > Llp(7)Seires 800 OnlyHP-UX 11i Version 3: February 2007 |
|
NAMElp — line printer DESCRIPTIONThis section describes capabilities provided by many line printers supported by various versions of the HP-UX operating system. A line printer is a character special device that may optionally have an interpretation applied to the data. If the character special device file has been created with the raw option (see the HP-UX System Administrator manuals for information about creating device files with the raw option), data is sent to the printer in raw mode (as, for example, when handling a graphics printing operation). In raw mode, no interpretation is done on the data to be printed, and no page formatting is performed. Data bytes are simply sent to the printer and printed exactly as received. If the device file does not contain the raw option, data can still be sent to the printer in raw mode. Raw mode is set and cleared by the LPRSET request. If the line printer device file does not contain the raw option, data is interpreted according to rules discussed below. The driver understands the concept of a printer page in that it has a page length (in lines), line length (in characters), and offset from the left margin (in characters). The default line length, indent, lines per page, open and close page eject, and handling of backspace are set to defaults determined when the printer is opened and recognized by the system the first time. If the printer is not recognized, the default line length is 132 characters, indent is 4 characters, lines per page is 66, one page is ejected on close and none on open, and backspace is handled for a character printer. The following rules describe the interpretation of the data stream:
Two ioctl(2) requests are available to control the lines per page, characters per line, indent, handling of backspaces, and number of pages to be ejected at open and close times. At either open or close time, if no page eject is requested the paper will not be moved. For opens, line and page counting will start assuming a top-of-form condition. The ioctl requests have the following form: #include <sys/lprio.h> int ioctl(int fildes, int request, struct lprio *arg); The possible values of request are:
The lprio structure used in the LPRGET and LPRSET requests is defined in <sys/lprio.h>, and includes the following members: short int ind; /* indent */ short int col; /* columns per page */ short int line; /* lines per page */ short int bksp; /* backspace handling flag */ short int open_ej; /* pages to eject on open */ short int close_ej; /* pages to eject on close */ short int raw_mode; /* raw mode flag */ These are remembered across opens, so the indent, page width, and page length can be set with an external program. If the col field is set to zero, the defaults are restored at the next open. If the backspace handling flag is 0, a character printer is assumed and backspaces are passed through the driver unchanged. If the flag is a 1, a line printer is assumed, and sufficient print operations are generated to generate the appropriate overstruck characters. If the raw mode flag is 0, data sent to the printer is formatted according to indent, columns per page, lines per page, backspace handling, and pages to eject on open and close. If the raw mode flag is 1, data sent to the printer is not formatted. If the raw mode flag is changed from 1 to 0 (raw mode is turned off) and the format settings (indent, columns per page, etc.) have not been modified, the data is formatted according to the prior format settings. |
Printable version | ||
|