What I settled on is HTML::HTMLDoc. It turns HTML documents in to PDF. This way I can serve a html version of a datagroup, and then if I want a "hard copy" I can pdf the html.
There are a few caveats. You have to have the underlying c htmldoc library installed so theres a bit of maintenance involved getting it set up and/or moving your app around, and for me I had to settle on htmldoc-1.8.27 because newer versions didn't give me the pdf formatted how I wanted.
But if you can deal with those it is a nice tool to get .pdf of your documents