Q1. How do I prevent the staircase effect?
A1. The staircase effect is caused by the way some printers expect lines to
be terminated. Some printers want lines that end with a
carriage-return/line-feed sequence (DOS-style) instead of the line-feed
sequence used for UNIX-type systems. The easiest way to fix this is to see
if your printer can switch between the two styles somehow---either by
flipping a DIP switch, or by sending an escape sequence at the start of each
print job. To do the latter, you need to create a filter (see Q2 and
A quick fix is to use a filter on the command-line. An example of this might be
$ cat thesis.txt | todos | lpr
Q2. What is a filter?
A2. A filter is a program that reads from standard input (stdin), performs some action on this input, and writes to standard output (stdout). Filters are used for a lot of things, including text processing.
Q3. What is a magic filter?
A3. A magic filter is a filter that performs an action based on a file's type. For example, if the file is a plain, text file, it would simply print the file using the normal methods. If the file is a PostScript file, or any other format, it would print it using another method (ghostscript). Two examples of this is magicfilter and APSfilter. One caveat of these filters is that the appropriate programs have to be installed before you install the filter.
The reason for this is that when the magicfilter gets installed, it queries your system for specific programs (such as ghostscript - if it finds it, then it knows it can handle PostScript data), then builds itself based on what it finds. To handle all the printer files, you should probably have at least the following installed:
Q4. What about Windows Printing System? Will Linux work with that?
A4. Maybe. Printers that accept only the WPS commands will not work with Linux. Printers that accept WPS and other commands (such as the Canon BJC 610) will work, as long as they're set to something other than WPS format.
Q5. What kinda cheey system is this? I can't print more than 6 pages or else I get a "file too large" error.
A5. One of the options in the /etc/printcap file relates to the maximum size of a print file. The default is 1000 disk blocks (about 500k?). For PostScript files and the like, this will give you maybe 6-8 pages with graphics and all. Be sure to add the following line in the printer definition:
mx=0
The primary reason for this is to keep the spool partition from getting
filled. There is another way to do it, by making lpr create a soft
link from the spool directory to your print file. But you have to remember to
add the -s
option to lpr every time.