This is quite a complex task. I assume the relevance of the printer type means that the ASP.NET application generates different output depending on it. The only way I see of achieving this is through JavaScript on the client, instantiating a COM object (a CommonDialog for example) that performs the printing functions (enumeration, etc). From there, you can call a page (or handler) on the server passing the printer type or name, and send the response to directly to the printer.
This was first published in June 2003