If I had to do it from scratch without any other tools, I would use HTML (maybe you have access to other tools, crystal reports or SSRS, which would be easier). HTML is specifically designed for layout design, and .NET provides great support for HTML. (Although I have not researched it recently, Iβm sure there are tools to display the HTML in the application and send it to the printer.)
HTML as XML can be templated, or you can use many of the existing tools (see Mustache, etc.). .NET has built-in templates, but some of the tools available are more enjoyable.
source share