One important way to save paper is to print on both sides of the paper. Ben Woodard is working on a library called libppd that allows you to do this from standard Linux printing programs (along with other printer tweaking, but duplex printing is most important for paper saving.)
http://sourceforge.net/project/?group_id=1658 is the download page for the beta version, as well as for a modified version of lpr that supports this functionality.
mpage can do some of this as well. From the manual page:
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.
Still missing are some explanations how to use a printer, which has a duplex (add on) device. Sorry I don't have such an expensive printer, so I can't check it yet.