[Catalyst] Should I create a new view for rendering a pdf in
browser?
Tomas Doran
bobtfish at bobtfish.net
Wed Nov 9 23:07:59 GMT 2011
On 9 Nov 2011, at 14:34, Steve wrote:
> My question is fairly straightforward - If I want to render a pdf in
> a browser, should I create a new Catalyst View?
Yes. In a perfect world, you'd just say $c->stash( current_view =>
'PDF' ) (and set a filename?) to make a pdf...
>
> The background on this is that we think that rather than rendering
> an HTML version of these reports, and subsequently converting them
> to pdf, just create the pdf on the fly and render it in the browser.
>
> Extra credit for recommendations on pdf tools for this type of
> thing. We've looked at PDF::Create, PDF::API2, PDF::Reuse, and also
> Prince (if we decide to convert from HTML).
Depends how dirty you want to be :_)
Doing something 'proper' with one of these (or also, take your XHTML,
apply XSLT => docbook, then make a pdf?) totally works, and if you're
prepared to put the effort in, you can make really nice documents..
But _if_ you can deal with something ugly but workable - then just
subclass your HTML view, after process write $c->req->body out to a
tempfile and run html2ps | ps2pdf on it! (Then read that back in and
replace the body) This is really dirty (and kinda slow for big pages),
but with a few appropriate options and some CSS to cut out the bits
that shouldn't be in the pdf - it works well..
I use this technique for all of our invoices, as I don't really care
how they look :)
Cheers
t0m
More information about the Catalyst
mailing list