Lately I've been using the print API for the first time and I really think it must be possible to come up with some improvements.
I think fairly typical printing would involve a mixture of fixed size items, and tables which may run over serveral pages. The PrintPage Book functionality seems aimed at this kind of thing, but the TablePrinter doesn't cooperate. Doesn't give you the number of pages, doesn't allow you to treat the first and last pages (where a table is likely to compete with other stuff) differently. And, if print is going to rotate arround printables, should there be a getPrintable on the generic awt components?
I'm not clear exactly what's wanted but, it seems to me, there's a need for some equivalent to the LayoutManger system and some kind of conditional page break system as you'd find in Word processing. I've got layed out boxes printing, but it's been an uphill struggle and I've wasted about half a ream of printer paper.
And that's another issue. How about a built-in print preview function?