Print Wizard starts off assuming several things about how you wish to print. Any of these assumptions can be overridden, in several ways, as described later.
Print Wizard’s beginning assumptions are:
- that you wish to print on the printer identified by Windows as your default printer
- that it will use the Windows printer driver; that is, do “high level” printing
- that paper size, orientation, bin, duplex (2-sided printing), etc. are as selected in the "properties" of the chosen printer, at the Windows level
- that printing should be done in the "Courier New" font. This font is found on every Windows system, is scalable in each direction, has good character set coverage, and is mono-spaced. Furthermore, auto-font switching is enabled; see below
- that printing should begin as high and as far to the left on the page as the printer is capable of printing
- Again, any and all of these assumptions can be overridden in a number of ways.
Print level switching
Print Wizard starts off by assuming that it will print at a high level; that is, it will use the Windows printer interface to draw characters (and other things) on each page. This high-level print is Windows’ preferred (and assumed) way of printing, and provides access to the Windows spooler functions, as well as support for printers connected via serial, parallel, network, USB, and other means.
This approach is a problem if the data stream contains escape sequences, such as a sequence that puts an Epson printer into compressed mode. This could be the case if the data stream is being generated by an application program that knows (or thinks it knows) what kind of printer you have, and is trying to control that printer. If printed at high level, these escape sequences would be “drawn” on the page, and they would not be obeyed; that is, they would not affect the printer’s printing. So print jobs of this type must be printed at “spooler” level (however, if Print Wizard is configured to translate PCL, and it sees escape codes, it will go into its PCL translation mode).
An "Escape" is a specific control character, having a decimal value 27, or hex 1B. It is sometimes represented as “\E” or as “^[“.
Likewise, if the print job contains PostScript code, printing it at high level would result in a listing of the PostScript instructions, instead of the intended printout. Print Wizard detects PostScript jobs by seeing if they start with “%!”. These print jobs must also be output at spooler level.
So if Print Wizard detects either PostScript or escape sequences (and it is not translating PCL), it will switch automatically to spooler level. In spooler level, Print Wizard writes directly to Windows’ spooler, bypassing the printer driver. The printer can still be connected via parallel, serial, network, JetDirect, etc.
(Earlier versions of Print Wizard used “raw” level; this has been superseded by the spooler level).