text 11 Nov PDF in rails

Vediamo come generare PDF in un’app Rails. Per la generazione utilizziamo Prawn e per l’integrazione con Rails il plugin Prawnto. Installiamoli:

$ sudo gem install prawn
$ ./script/plugin install git://github.com/thorny-sun/prawnto.git

Ok, ora supponiamo di voler manipolare un modello Clienti e quindi abbiamo un modello (client.rb) un controller (clients_controller.rb) e delle viste. Bene, focalizziamoci sull’action show in cui visualizziamo i dati specifici di un cliente, magari all’indirizzo http://localhost:3000/clients/show/45, quindi i dati relativi al cliente con ID 45. Ora sarebbe molto bello che aggiungendo “.pdf” (http://localhost:3000/clients/show/45.pdf) al termine dell’URL scarichiamo il PDF che ci illustra i dati relativi a quel cliente. Bene niente di piu` semplice. Vediamo il controller:

def show
  @client = Client.find(params[:id]))
  respond_to do |format|
    format.html
    format.pdf  { prawnto :prawn => { :page_size => 'A4' }, :filename => "#{@client.code}.pdf" }
  end
end

Ora creiamo una vista e la chiamiamo show.pdf.prawn e dentro scriviamo l’output per il nostro PDF usando i comandi che ci mette a disposizione prawn. Un esempio banale:

pdf.text "#{@client.name}"

Bene e` tutto. Ora andando all’URL http://localhost:3000/clients/show/45.pdf scarichiamo un PDF in formato A4 con scritto il nome del cliente con ID 45.

Info su prawn, info su prawnto


blog comments powered by Disqus