Geração de PDFs indolor no Rails 3

31 de agosto de 2011 ~ Comente! ~ Tags:

Em um trabalho recente, precisei gerar relatórios em PDF. Considerei algumas soluções e optei por uma que não me fizesse perder os cabelos e reescrever código: wicked_pdf.

wicked_pdf usa wkhtmltopdf, um incrível utilitário que converte HTML para PDF, usando Webkit e QT. Você não precisa compilá-lo, basta apenas copiar o binário certo do site do projeto.

Uso

Após instalar a gem em seu sistema, você pode gerar os PDFs sem escovar bits: adicione o formato pdf entre as possibilidades de respostas de uma action, como abaixo:

  1. def report
  2.   @order = Order.find(params[:id])
  3.  
  4.   respond_to do |format|
  5.     format.html
  6.     format.pdf do
  7.       render :pdf => "order-#{params[:id]}"
  8.     end
  9.   end  
  10. end

Se quiser, você pode usar a mesma view do formato html:

  1. render :pdf => "order-#{params[:id]}", :template => "/orders/report.html.erb"

O readme da gem apresenta as informações pertinentes para seu uso e não é meu objetivo reproduzi-lo aqui, apenas chamo a atenção para um detalhe: em hosts compartilhados, você precisará definir o path correto do wkhtmltopdf. Para isso, você pode criar um initializer com o seguinte conteúdo:

  1. WickedPdf.config = { :exe_path => '/home/meuusario/wkhtmltopdf' }

PS. você pode usar o wkhtmltopdf no PHP com o Snappy. Não testei, mas pode ser uma boa opção.


Últimos textos do blog

Tagcloud

abraweb acadêmico actionscript ajax apache apple arteccom asp autosimulado backup benchmark beta bh blogosfera bookmarklet bookmarklets brasil browser censura chrome chucknorris cms codestacker concurso crítica css dashboard deployment desenvolvimento design dicas divinópolis dotmac download dreamhost economia editor empreendedorismo empreendorismo encontro estatísticas extreme programming feedburner firefox fireworks flash flickr ftp game git globo gmail golive google greasemonkey guerrilha hack host howto htaccess html humor ie inss internet banking iphone ipod is® javascript jquery layout leopard linux listas live locomotive mac meme microsoft miguxês minasonrails mod_rails mp3 msn mysql off tropic opensocial opera orkut oscommerce parser passenger pc personalidade pesquisa php plugin plugins pog portfolio produtividade publicidade rails raspberry refurbished regex resenha review ria rss ruby rádio safari sandbox screencast screensaver script.aculo.us seo shoutcast silverlight software spam startup stevejobs subversion suporte swf switch são paulo teste textmate trabalho tumblelog tumblr tutorial twitter ui uml usabilidade validação viral wallop web2.0 webalizer webdesign webdevelopment webkit webmail webmobile webobjects webstandards windows wordpress xml yahoo youtube

Veja todos os textos →