Linux-Ecology-HOWTO

Double Sided Printing

One important way to save paper is to print on both sides of the paper. Depending on the printer capabilities, this can either be done manually (printing odd and even pages in 2 passes), or by instructing the printer to use both sides.

Printer control

If your GNU/Linux distribution is using the CUPS printing system (as most do nowadays), you can configure double sided printing through the CUPS administration interface. Open the http://localhost:631 URL with a browser, type your root password if required, and configure any local printier supporting double sided printing. This applies by default to all future print jobs.

Print settings can also be changed on a job by job basis too. In particular, KDE and Gnome let applications select and configure printers for each print job.

If you are printing from the command line, you can use the lpr-wrapper to insert printer control instructions to PostScript files at print time. Example:

lpr-wrapper -od doc.ps

Manual printing

If double sided printing is not supported by your printer, you can also achieve this by printing odd/even (or right/left) pages separately. Many graphical applications like OpenOffice.org let you do that.

If you print from the command line, you can also do this with mpage. From the manual page:

-jfirst[-last][%interval]

Print just the selected sheets, specified by number, starting at 1. Here last defaults to the end of data, interval to 1. Thus -j1-10 selects the first 10 sheets, while -j 1%2 prints just the odd- numbered sheets and -j 2%2 prints just the even ones.

You can do double-sided printing, in two passes, as follows. If you use 3-hole punched paper, put it in the printer such that the holes will appear at the top of the page -- on the right as you pull out the printer tray, in our Laser writer II NTX. Print the odd-numbered sheets with

-j 1%2 ...

Note the number of pages it reports. (Only half this many will really be printed). When printing finishes, if mpage reported an odd number of pages, remove the last one from the stack, since there will be no even-numbered sheet to match it. Then arrange the stack of paper for printing on the other side. (If it's punched, the holes will now be on the left.) On our II NTX, the paper comes out blank-side up; replace it in the tray still blank-side up but rotated 180 degrees. For other printers, you figure it out. Now print the even- numbered sheets in reverse order with

-r -j 2%2 ...

Hoping no one else reaches the printer before you do.

Duplex is a set of sh scripts that emulates duplex printing (on both sides of the paper) for sheet-fed printers that do not support duplex printing in hardware. It is intended for use on printers connected to workstations. It can operate as a pipe so that applications can use it as a duplex printing driver. Its unique feature is its ability to print to print many duplex print jobs in one batch, printing the odd sides of all jobs and then the even sides in just two passes.