A Rails template handler for PDF library Prawn. You can find a more detailed description in its introduction article.
There already exists prawnto but it's too bloated for my taste. Prawn-handler is lightweight, simple, and less of a hassle to use.
-
Name PDF view files like
foo.pdf.prawn
. Inside, use thepdf
method to access aPrawn::Document
object. In addition, this handler allows for lazy method calls: you don't have to specify the receiver explicitly, which cleans up the resulting view code.For example, the following code with formal calls:
pdf.bounding_box [100, 600], width: 200 do pdf.text 'The rain in spain falls mainly on the plains ' * 5 pdf.stroke do pdf.line pdf.bounds.top_left, pdf.bounds.top_right pdf.line pdf.bounds.bottom_left, pdf.bounds.bottom_right end end
Is equivalent to this one with lazy calls:
bounding_box [100, 600], width: 200 do text 'The rain in spain falls mainly on the plains ' * 5 stroke do line bounds.top_left, bounds.top_right line bounds.bottom_left, bounds.bottom_right end end
This is accomplished without
instance_eval
, so that access to instance variables set by the controller is retained.
- Initially written by Roman Le Négrate (contact).
- Adopted to Rails 3 by Torsten Rüger