PDF::Writer -- it kicks ass and it's easy to use.

http://www.artima.com/rubycs/articles/pdf_writer.html

require "pdf/writer"

      class HelloController < ApplicationController
        # ...
        def pdf
          _pdf = PDF::Writer.new
          _pdf.select_font "Times-Roman"
          _pdf.text "Hello, Ruby.", :font_size => 72, :justification => :center

          send_data _pdf.render, :filename => "hello.pdf",
                    :type => "application/pdf"
        end
        # ...
      end

the only problem with it is that you can't define templates and then
have PDF::Writer process them the same way you can process other
templates within Rails as views.

however, it sounds as if that's what your application needs, and I
think creating a templating facility for PDF::Writer would be your
best bet. if you create it, please open-source it! it'll make a useful
library stunningly useful.

(actually, I might be willing to help with that, I think it would be
very, very cool.)

On 11/15/06, Kouhei Sutou <kou / cozmixng.org> wrote:
> Hi,
>
> 2006/11/16, J. B. Rainsberger <jbrains762 / gmail.com>:
>
> > I am about to do some research tomorrow, but if any of you has an
> > obvious answer, then that would help. I am looking to build PDFs from
> > Rails views, and I'd like some guidance on how to go about it.
>
> > I want to put placeholders, both text and images, onto a template and
> > end up with a PDF. I'm pretty open about how that all happens, so feel
> > free to make wild suggestions. The only important constraint I can think
> > of is that layout (meaning spacing) matters, so relying on a browser
> > rendering HTML is probably not an option. The template will be a kind of
> > background on which the placeholders will be laid out, and I imagine
> > it's the template that will be the tricky part.
>
> My suggestion is the following:
>
>   1. make a SVG for template with Illustrator, Inkscape and so on
>   2. substitute placeholders in the SVG by ERB, Amrita and so on
>   3. generate PDF from the substituted SVG.
>       (See [ruby-talk:225127])
>
> # You can't use PDF::Writer for this suggestion.
>
> Thanks,
> --
> kou
>
>


-- 
Giles Bowkett
http://www.gilesgoatboy.org