Skip to main content

Errno::ENOENT: No such file or directory


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


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.

Uninstall the gem "wkhtmltopdf"

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

Restart your web servers, it should work.

Comments

  1. hi!
    i'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")

    ReplyDelete
  2. hi Dulce,

    Is it working fine after your "next change" ? otherwise let me know what the exact error are you receiving.

    Best,
    Kannan

    ReplyDelete

Post a Comment

Popular posts from this blog

Redis & nginx configuration for websocket/actionCable

Start redis server => redis-server redis console => redis-cli view available databases => config get databases pubsub channels global* pubsub channels global_notification_2 pubsub channels global_notification pubsub channels * => Lists all the available channels pubsub numsub global_notification_2 => returns the number of subscribers From unix command line directly redis-cli PUBSUB CHANNELS redis-cli PUBSUB NUMSUB global_notification_2 [root@api prod-openmednet-api]# redis-cli PUBSUB CHANNELS 1) "_action_cable_internal" 2) "global_notification_2" [root@api prod-openmednet-api]# redis-cli PUBSUB CHANNELS global_notification_2 1) "global_notification_2" [root@api prod-openmednet-api]# redis-cli PUBSUB NUMSUB global_notification_2 1) "global_notification_2" 2) (integer) 2 NGINX configuration:  worker_processes   auto; worker_rlimit_nofile 500000;  #=> refer RLIM...

Postgres points

Export sql data to file copy (select * from table-name) to '/tmp/cta.pl.list' in root dnf install postgresql-server postgresql-devel service postgresql start mkdir /home/pgdir chown postgres:postgres /home/pgdir -R chmod 777 /home/pgdir -R  su postgres initdb -D /home/pgdir pg_ctl -D /home/pgdir -l /home/pgdir/log start