简体   繁体   中英

Pdfkit/wkhtmltopdf - OSError: [Errno 8] Exec format error

Please look at the below error trace.

In [1]: import pdfkit

In [2]: pdfkit.from_string('a', 'a.pdf')
---------------------------------------------------------------------------
OSError                                   Traceback (most recent call last)
 in ()
----> 1 pdfkit.from_string('a', 'a.pdf')

/root/.virtualenvs/v1/lib/python2.7/site-packages/pdfkit/api.pyc in from_string(input, output_path, options, toc, cover, css, configuration)
     66                configuration=configuration)
     67 
---> 68     return r.to_pdf(output_path)
     69 
     70 

/root/.virtualenvs/v1/lib/python2.7/site-packages/pdfkit/pdfkit.pyc in to_pdf(self, path)
     91 
     92         result = subprocess.Popen(args, stdin=subprocess.PIPE, stdout=subprocess.PIPE,
---> 93                                   stderr=subprocess.PIPE)
     94 
     95         # If the source is a string then we will pipe it into wkhtmltopdf.

/usr/lib/python2.7/subprocess.pyc in __init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags)
    708                                 p2cread, p2cwrite,
    709                                 c2pread, c2pwrite,
--> 710                                 errread, errwrite)
    711         except Exception:
    712             # Preserve original exception in case os.close raises.

/usr/lib/python2.7/subprocess.pyc in _execute_child(self, args, executable, preexec_fn, close_fds, cwd, env, universal_newlines, startupinfo, creationflags, shell, to_close, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite)
   1325                         raise
   1326                 child_exception = pickle.loads(data)
-> 1327                 raise child_exception
   1328 
   1329 

OSError: [Errno 8] Exec format error

Not sure if this is an issue or some fault from my side, it was working in my local system(installed long back) but not working in digital ocean server. Both are Ubuntu 14.

I followed instructions from this page - http://fedir.github.io/web/blog/2013/09/25/install-wkhtmltopdf-on-ubuntu/

Note that I was able to generate pdfs using terminal commands but not using pdfkit.

Please let me know if I missed anything.

Update - Solution from this link is working for me.

As @user1305989's comment, following is the solution,

Steps:

  1. At first install xvfb server:

     sudo apt-get install xvfb 
  2. Get needed version of wkhtmltopdf from http://wkhtmltopdf.org/downloads.html .

    For Ubuntu 14.04 64-bit:

     wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb 
  3. Install wkhtmltopdf:

     sudo dpkg -i wkhtmltox-0.12.2.1_linux-trusty-amd64.deb 

    Install dependency (if needed):

     sudo apt-get -f install 
  4. Create symblic link in /usr/local/bin/ :

     echo 'exec xvfb-run -a -s "-screen 0 640x480x16" wkhtmltopdf "$@"' | sudo tee /usr/local/bin/wkhtmltopdf.sh >/dev/null sudo chmod a+x /usr/local/bin/wkhtmltopdf.sh 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM