Reputation: 1003
I tried installing pdfkit Python API in my windows 8 machine. I'm getting issues related to path.
Traceback (most recent call last):
File "C:\Python27\pdfcre", line 13, in <module>
pdfkit.from_url('http://google.com', 'out.pdf')
File "C:\Python27\lib\site-packages\pdfkit\api.py", line 22, in from_url
configuration=configuration)
File "C:\Python27\lib\site-packages\pdfkit\pdfkit.py", line 38, in __init__
self.configuration = (Configuration() if configuration is None
File "C:\Python27\lib\site-packages\pdfkit\configuration.py", line 27, in __init__
'https://github.com/JazzCore/python-pdfkit/wiki/Installing-wkhtmltopdf' % self.wkhtmltopdf)
IOError: No wkhtmltopdf executable found: ""
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
Is anybody installed Python PDFKIt in windows machine? How to resolve this error.
My sample code :
import pdfkit
import os
config = pdfkit.configuration(wkhtmltopdf='C:\\Python27\\wkhtmltopdf\bin\\wkhtmltopdf.exe')
pdfkit.from_url('http://google.com', 'out.pdf')
Upvotes: 69
Views: 143311
Reputation: 11
If you have added the path but still getting the error Just simply restart the vs code and the error will gone
Upvotes: 0
Reputation: 49
for windows Try to use the complete path C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe
Upvotes: 0
Reputation: 509
Ran into the same problem on a Mac. For some reason-- it worked after unistalling the pip installation and reinstall wkhtmltopdf using brew
pip uninstall wthtmltopdf
and use brew
brew install Caskroom/cask/wkhtmltopdf
Upvotes: 3
Reputation: 69
[For Ubuntu/Debian]
first run: sudo apt-get update --fix-missing
then: sudo apt-get install -y wkhtmltopdf
hope it would solve your problem.
Upvotes: 0
Reputation: 29
You need set:
pdfkit.from_url('http://google.com', 'out.pdf',configuration=config)
Upvotes: 2
Reputation: 41
import pdfkit
path_wkthmltopdf = b'C:\Program Files\wkhtmltopdf\\bin\wkhtmltopdf.exe'
config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf)
pdfkit.from_url("http://google.com", "rajul-url.pdf", configuration=config)
pdfkit.from_file("output.xml","rajul-pdf.pdf", configuration=config)
The Above Code block is working perfectly fine for me. Please note that file which needs to be converted is in the same directory where the pdf file is creating.
Upvotes: 4
Reputation: 8904
The following should work without needing to modify the windows environment variables:
import pdfkit
path_wkhtmltopdf = r'C:\Program Files (x86)\wkhtmltopdf\bin\wkhtmltopdf.exe'
config = pdfkit.configuration(wkhtmltopdf=path_wkhtmltopdf)
pdfkit.from_url("http://google.com", "out.pdf", configuration=config)
Assuming the path is correct of course (e.g. in my case it is r'C:\Program Files (x86)\wkhtmltopdf\bin\wkhtmltopdf.exe').
Upvotes: 80
Reputation: 20206
Please install wkhtmltopdf using,
sudo apt install -y wkhtmltopdf
for windows machine install it from below link, http://wkhtmltopdf.org/downloads.html
and you need to add wkhtmltopdf
path into environment variables
Upvotes: 38
Reputation: 11
When I tried all of the above methods, I was till facing Permission Error as I don't have the admin rights to my workstation. If that's the case for you too, then make sure when you install your wkhtmltopdf.exe. The destination folder for installation is in your python site-packages folder, or add the directory to sys.path. Normally it gets installed in Program files folder. I changed the installation directory and this works for me:
import pdfkit
pdfkit.from_url("http://google.com", "out.pdf")
Upvotes: 1
Reputation: 1467
IOError: 'No wkhtmltopdf executable found'
Make sure that you have wkhtmltopdf in your $PATH or set via custom configuration. where wkhtmltopdf
in Windows or which wkhtmltopdf
on Linux should return actual path to binary.
Adding this configuration line worked for me:
config = pdfkit.configuration(wkhtmltopdf="C:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe")
pdfkit.from_string(html, 'MyPDF.pdf', configuration=config)
Seems you need to pass configuration=config
as argument.
Upvotes: 18
Reputation: 21
def urltopdf(url,pdffile): import pdfkit ''' input - url : target url - pdffile : target pdf file name ''' path_wkthmltopdf = 'D:\\Program Files (x86)\\wkhtmltopdf\\bin\\wkhtmltopdf.exe' config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf) #pdfkit.from_url(url=urlpath, output_path=pdffilepath,configuration=config) pdfkit.from_url(url,pdffile,configuration=config) urltopdf('http://www.google.com','pdf/google.pdf')
very good solution! thanks everyone!
Upvotes: 1
Reputation: 1522
No need to write wkhtmltopdf path into code. Just define an environment variable for that, and it works.
import pdfkit
pdfkit.from_url('http://google.com', 'out.pdf')
For me this code is working.
Upvotes: -2
Reputation: 199
Found the decode on a windows platform needed to be a binary string, try:
path_wkthmltopdf = b'C:\Program Files\wkhtmltopdf\\bin\wkhtmltopdf.exe'
config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf)
pdfkit.from_url(url=urlpath, output_path=pdffilepath,configuration=config)
Upvotes: 0
Reputation: 1537
I am learning python today, and I met the same problem, lately I set the windows enviroment variables and everything is OK.
I add the install path of wkhtml to the path, for example:"D:\developAssistTools\wkhtmltopdf\bin;" is my install path of wkhtml, and I add it to the path, everything is OK.
import pdfkit
pdfkit.from_url("http://google.com", "out.pdf")
finally, I find a out.pdf.
Upvotes: 5