Hallo Marc,
Mit FOP solltest Du sowohl PDF erzeugen als auch per Java Printing API drucken können.
FOP ist eine implementierung von XSL FO. Ich hab' das selbst noch nicht verwendet, aber wenn Du keine zu großen Ansprüche an die Layoutmöglichkeiten hast, ist das eine gute Lösung.
Grüße
Daniel