HTML to PDF conversion is very easy in rails and pdfkit will be useful in this case, wkhtmltopdf tool will be supporting tool so you can easily convert an html to pdf.
In my experience I used the following steps:
gem install pdfkit -v 0.5.0
gem install wkhtmltopdf -v 0.1.2
gem install wkhtmltopdf-binary
Some times this sequence will not work, so I use the following as per the instruction from https://github.com/pdfkit/pdfkit/wiki/Installing-WKHTMLTOPDF
Be careful to download the appropriate wkhtmltopdf tar ball, it depends on your os architecture, like i386 or 64
wget http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.9.9-static-amd64.tar.bz2
tar xvjf wkhtmltopdf-0.9.9-static-amd64.tar.bz2
mv wkhtmltopdf-amd64 /usr/local/bin/wkhtmltopdf
chmod +x /usr/local/bin/wkhtmltopdf
tar xvjf wkhtmltopdf-0.9.9-static-amd64.tar.bz2
mv wkhtmltopdf-amd64 /usr/local/bin/wkhtmltopdf
chmod +x /usr/local/bin/wkhtmltopdf
Try to convert html to pdf after restarting your web servers.
If you get any error like: Errno::ENOENT: No such file or directory then I have a straightforward method and it is very simple too.
gem uninstall wkhtmltopdf
then do the above things again, that is:
wget http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.9.9-static-amd64.tar.bz2
tar xvjf wkhtmltopdf-0.9.9-static-amd64.tar.bz2
mv wkhtmltopdf-amd64 /usr/local/bin/wkhtmltopdf
chmod +x /usr/local/bin/wkhtmltopdf
tar xvjf wkhtmltopdf-0.9.9-static-amd64.tar.bz2
mv wkhtmltopdf-amd64 /usr/local/bin/wkhtmltopdf
chmod +x /usr/local/bin/wkhtmltopdf
Restart your web servers, it should work.
hi!
ReplyDeletei'm from mexico
same thing happened to me, but my error was in layout of render_to_string:
html1 = render_to_string(:template => "/file.html.erb", :layout => 'file', :locals => { :id => @object.id })
kit1 = PDFKit.new(html1,:orientation=>'Portrait')
kit1.stylesheets << "#{Rails.root}/file.css"
kit1 = kit1.to_file("#{Rails.root}/public/file#{@object.id}_file.pdf")
next change:
html1 = render_to_string(:template => "/file.html.erb", :layout => false, :locals => { :id => @object.id })
kit1 = PDFKit.new(html1,:orientation=>'Portrait')
kit1.stylesheets << "#{Rails.root}/file.css"
kit1 = kit1.to_file("#{Rails.root}/public/file#{@object.id}_file.pdf")
hi Dulce,
ReplyDeleteIs it working fine after your "next change" ? otherwise let me know what the exact error are you receiving.
Best,
Kannan