Formatter filter pass-through mode
After a job is submitted to the spooler it eventually passes to the formatter filter for processing and delivery to the printer device driver. The formatter filter always opens the printer device driver in pass-through mode.
After a job is submitted to the spooler it eventually passes to the formatter filter for processing and delivery to the printer device driver. The formatter filter always opens the printer device driver in pass-through mode.Jobs submitted to the spooler, as opposed to data streams that are sent directly to the printer device driver, are always processed or otherwise modified by a formatter filter and not by the printer device driver.
Like the printer device driver, the formatter filter also has two modes of operation: pass-through and non-pass-through. Again, the mode of operation selected for a given job determines how or even if a data stream is processed.
The _d attribute in a virtual printer definition (a digested colon file) specifies the input data stream type for the queue associated with that virtual printer. The virtual printer definition also specifies the formatter filter for that input data stream type. When the formatter filter is invoked to process a job, the process that runs the formatter (pioformat) filter checks the value of the _d attributes and decides whether to invoke the formatter filter in pass-through mode. If pass-through mode is selected, the formatter filter uses the passthru() subroutine to read the input stream and send it unmodified to the printer device driver. If pass-through mode is not selected, the formatter filter uses the lineout subroutine to process the input data stream line by line. In either case, the printer device driver was opened for writing in pass-through mode and performs no processing on the output data stream.
Note that input data streams such as PostScript are pass-through by definition; the processing is performed by the Postscript interpreter hardware on the printer.
Device driver parameters | Corresponding parameters in the colon files | |
---|---|---|
pass-through? | -p | _d |
page length (lines) | -l | _l |
page width (columns) | -w | _w |
indentation (columns) | -i | _i |
wrap long lines? | -W | _L |
convert to uppercase? | -C | N/A |
send carriage returns? | -c | _x |
send linefeeds ? | -n | _x |
carriage rtn after linefeed | -r | _x |
suppress tab expansion? | -t | N/A |
send backspaces? | -b | N/A |
send formfeeds? | -f | _Z |
The values of the parameters in the right column can be permanently set in the virtual printer definition. They can also be overridden at the time a job is submitted by using certain flags on either the qprt or enq commands.