Question

I'm trying to use wicked_pdf on my prod server but it keeps failling :

RuntimeError (Failed to execute:
"/usr/bin/wkhtmltopdf" -q        "file:////tmp/wicked_pdf20130709-23109-1adqx5g.html" "/tmp/wicked_pdf_generated_file20130709-23109-1ic5dbe.pdf"
Error: PDF could not be generated!
 Command Error: wkhtmltopdf: cannot connect to X server
):
  app/controllers/contrats_controller.rb:15:in `block (2 levels) in show'
  app/controllers/contrats_controller.rb:11:in `show'

I tried to follow this answer : wkhtmltopdf: cannot connect to X server but it still does not work.

Was it helpful?

Solution

This post helped me to resolve my problem : http://www.stormconsultancy.co.uk/blog/development/generating-pdfs-in-rails-with-pdfkit-and-deploying-to-a-server/

I'm reproducing here the step from this post that helped me to install it :

# first, installing dependencies
sudo aptitude install openssl build-essential xorg libssl-dev

# for 64bits OS
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

He also create an initializer to tell to pdfKit where it is, so this method is for wicked PDF and PDF Kit.

OTHER TIPS

Resolved this problem in this tread https://stackoverflow.com/a/34947479/5320149

I found method to resolve this problem without fake X server. In newest version of wkhtmltopdf dont need X server for work, but it no into official linux repositories.

Solution for Ubuntu 14.04.4 LTS (trusty) i386

$ sudo apt-get install xfonts-75dpi
$ wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-i386.deb
$ sudo dpkg -i wkhtmltox-0.12.2.1_linux-trusty-i386.deb
$ wkhtmltopdf http://www.google.com test.pdf

Solution for Ubuntu 14.04.4 LTS (trusty) amd64

$ sudo apt-get install xfonts-75dpi
$ wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
$ sudo dpkg -i wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
$ wkhtmltopdf http://www.google.com test.pdf
  1. Verify you have xvfb installed, or install it using apt-get install xvfb.

  2. Create a file called wkhtmltopdf.sh and add the following:

    xvfb-run -a -s "-screen 0 640x480x16" wkhtmltopdf $*
    

    Change the dimensions (640x480x16) to match whatever virtual screen parameters you want it to emulate.

  3. Move the shell script to /usr/bin, and set permissions:

    sudo chmod a+x /usr/bin/wkhtmltopdf.sh
    
  4. Optionally, you can add a symbolic link in your project directory:

    ln -s /usr/bin/wkhtmltopdf.sh wkhtmltopdf
    

See this and this for reference.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top