Ok, that's everyone for your input. I have decided to go with generating a html file, and then printing that - it seems the easiest way that is also reasonably flexible.
If anyone is interested, the program will generate a temporary html file, and will then use the ShellExecute OS call to get windows to print it via the users web browser. The code to do this is on msdn here:
http://msdn.microsoft.com/library/de...ming/print.asp