We have been looking for a long time for a desent Server Side Printing solution in our .Net development projects.
Basically printing is a breeze when developing in a windows client environment. However printing from a server side is much more difficult. Let's consider printing from web sites.
Printing directly from the web site
Printing directly from the code excecuted by the web server doesn't seem like a good idea. Firstly, server side web pag execution should be kept as quick as possible. Only then you can get good scaling for your web site. Secondly, web page execution runs usually under a strict security account like the Network Service which might not be sufficient. Lastly, when printing requests would increase the web server migh choke and you would lose print outs.
Printing from a service
The better solution is to print from an external service. Whenever a print request is launched on a web page, the server side code would instruct the external print service for a new print assignment.
Document formats
In general, we want to print different type of documents ranging from simpel text files to word documents, images, pdf's etc. In my opinion it is best to convert all these formats to PDF before printing. This ensures a good printing baseline as printing HTML for example, doesn't offer good paper output settings. Microsoft has introduced the XPS paper spec which looks like a good alternative from Redmond, however it still need to catch up on the industry.
Products
3-Heights™ PDF Printer Service
This product seems great; I tested it and it works like a charm and support of it is excelent. Basically you define some drop folders and assign printers to these, simple :). Pricing starts at $1000.
http://www.pdf-tools.com/asp/products.asp?name=PRNR&type=svc
Adobe PDF Print Engine
Haven't really looked at this but it seems that adobe found a good solution to the problem described above. I'm not sure but I expect this product to be in a higher price range.
http://www.adobe.com/products/pdfprintengine/overview.html