SasseMan 49 Junior Poster

I'm searching for a java library/framework that makes printing easier. By easier I mean something that makes it possible to layout and format text/images and other elements in a document by defining layouts in html/xml or something. I also want the layout to be decoupled from rendering so the document can be printed to a screen, a4 printer, receipt-printer, or in general any arbitrary device that can show a document (But mostly different kind of printers).

Does anyone know of something like this? Are there any widely used libraries? Javas internal printing capabalities doesn't do much good. Have googled it for some time now and can't find anything that seems good enough. Any thoughts?