Pdfkit OSError: No wkhtmltopdf executable found
Asked Answered
R

1

7

I'm trying to convert a webpage to PDF, using pdfkit but it shows following error

Traceback (most recent call last):

  File "<ipython-input-39-33289a2ef087>", line 1, in <module>
runfile('H:/Python/Practice/pdf_read_write.py', wdir='H:/Python/Practice')

  File "C:\Program Files\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 866, in runfile
execfile(filename, namespace)

  File "C:\Program Files\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)

  File "H:/Python/Practice/pdf_read_write.py", line 10, in <module>
config = pdfkit.configuration(wkhtmltopdf="C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe")

  File "C:\Program Files\Anaconda3\lib\site-packages\pdfkit\api.py", line 83, in configuration
return Configuration(**kwargs)

  File "C:\Program Files\Anaconda3\lib\site-packages\pdfkit\configuration.py", line 27, in __init__
'https://github.com/JazzCore/python-pdfkit/wiki/Installing-wkhtmltopdf' % self.wkhtmltopdf)

OSError: No wkhtmltopdf executable found: "C:\Program Files\wkhtmltopdin\wkhtmltopdf.exe"
If this file exists please check that this process can read it. Otherwise please install wkhtmltopdf - https://github.com/JazzCore/python-pdfkit/wiki/Installing-wkhtmltopdf

I have downloaded wkhtmktopdf from Here and installed. Added the path to environment variable but still shows the same error.
I have tried configuring pdfkit but nothing worked.

Here is my code:

import pdfkit
config = pdfkit.configuration(wkhtmltopdf="C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe")
pdfkit.from_url("http://www.geeksforgeeks.org/convex-hull-set-2-graham-scan/", "out.pdf",configuration=config)

How to solve this issue ??

Relator answered 23/2, 2017 at 15:58 Comment(2)
The \b in \bin is an ASCII Backspace. Try r"C:\Program Files\..." or "C:\\Program Files\\...".Lungki
Oh !! thanks a lot !! It worked !! :D Post it as an answer. @LungkiRelator
L
13

Your config path contains an ASCII Backspace, the \b in \bin, which pdfkit appears to be stripping out and converting C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe to C:\Program Files\wkhtmltopdf\wkhtmltopdf.exe.

This can be resolved by using r, which makes it a raw literal

config_path = r'C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe'

or \\

config_path = 'C:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe'
Lungki answered 23/2, 2017 at 16:13 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.