I'm back in town.
This example actually does a lot more than just invoking the print preview dialog and the direct print methods. In it you loop through a series of records printing each one's data. You also need to keep track of the positions of what you print so you can draw a box around it all when you're done.
It's not super hard but it's non-trivial and when I give a problem like this to students they often have trouble getting the details right. One of the most common mistakes in the first attempt prints all of the records' data at the same spot making a big mess.
(Note that for any printing program, I spend a lot of time just looking at print previews so I don't waste a lot of paper. I usually don't actually print anything on paper until I'm pretty sure it works.)