Hi Ian, thanks for your comments they really add value to this thread. You have some idea's in there which I didn't think of.
As far as setting up the printers to the asp.net account can use them, I used an account with administrative rights (not the asp.net domain service account) and set up the printers and asp.net was able to see them fine. This is on a Windows 2000 box, other OS's might not respond so well. After reading your post I am not sure why my method works, I will have to think on that some more.
I tried spawning an Internet Explorer window, if that is what you are referring to, but it had a few major formatting problems. In particular, it would cut of the right hand side of the text when it was formatted with a table. There were a few other security problems and annoyances as well which caused me to dump the idea.
As to using the RichText control, that is a great idea. I didn't know that asp.net had a native RichText control. Don't forget that I am working in a web environment with this code. If it was a simple vb.net application I can think of many better ways for printing nicely formatted text but when I am dealing with web pages which need to print on the server, not client, side I was unable to think of a better solution. If you know of a way to use a native (or free) RichText control for printing text, where you can control the color of each character, on the server side then please share.