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.
blog comments powered by Disqus