Boy did I get an education looking into this. I guess I\'ve been spoiled by Powerbuilder, which has fantastic functionality for this out of the box.
Does anyone ser
I've found the easiest way is to implement a generalized DocumentPaginator class for paginating anything I can put on screen. With my DocumentPaginator I don't need to worry about printing because I can take any arbitrary WPF control and tell it to print, and it will take multiple pages if necessary to display all the data.
I also use an inherited attached bool property "PrintView" that the user can control. Some of my controls change their appearance somewhat using a trigger on the "PrintView" property, so they will look better when printed.
I describe my DocumentPaginator solution in more detail in this answer, including a description of the algorithm required.