PrintNode allows you to remotely print to any printer over the internet.  This is the .net / c# library for the PrintNode API.