2015-06-02 22 views
5

Làm thế nào để chuyển đổi HTML sang PDF với python3? tôi viết một số mã về webView với pyqt5, và tôi muốn chuyển đổi html trong webView sang pdf, tôi nên làm gì?Làm thế nào để chuyển đổi HTML sang PDF với python3

tôi đã cố gắng sử dụng html2pdf, nhưng dường như chỉ hỗ trợ python2.x và tôi đã cố gắng cài đặt wkhtmltox-0.12.2.2_msvc2013-win64.exe và pdfkit, sau đó sử dụng mã ví dụ.

import pdfkit 

pdfkit.from_url('http://google.com', 'out.pdf') 
pdfkit.from_file('test.html', 'out.pdf') 
pdfkit.from_string('Hello!', 'out.pdf') 

nhưng tôi cũng không thành công và lỗi xảy ra.

Traceback (most recent call last): 
File "E:\Python34\lib\site-packages\pdfkit\configuration.py", line 21, in __init__ 
with open(self.wkhtmltopdf) as f: 
FileNotFoundError: [Errno 2] No such file or directory: b'' 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
File "<pyshell#2>", line 1, in <module> 
    pdfkit.from_url('http://google.com', 'out.pdf') 
File "E:\Python34\lib\site-packages\pdfkit\api.py", line 22, in from_url 
configuration=configuration) 
File "E:\Python34\lib\site-packages\pdfkit\pdfkit.py", line 38, in __init__ 
self.configuration = (Configuration() if configuration is None 
File "E:\Python34\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: "b''" 
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 

nhưng tôi cũng không thành công. Tôi nên làm gì? Hệ thống của tôi là window7 x64, phiên bản python là 3.4

+0

tôi cài đặt lại wkhtmltox và đặt đường dẫn, tôi hoạt động tốt !! – zonzely

+0

Hi zonzely, tôi đã có cùng một vấn đề. Làm thế nào bạn làm cho nó hoạt động? Ý của bạn là gì? – mikeqfu

Trả lời

1

'set path' có thể có nghĩa là thêm **.exe vào biến môi trường hệ thống $Path$. Ví dụ: thêm D:\Program Files\wkhtmltopdf\bin vào $Path$.

+1

Điều này không cung cấp câu trả lời cho câu hỏi. Bạn có thể [tìm kiếm các câu hỏi tương tự] (// stackoverflow.com/search) hoặc tham khảo các câu hỏi có liên quan và được liên kết ở phía bên phải của trang để tìm câu trả lời. Nếu bạn có câu hỏi liên quan nhưng khác, [hỏi một câu hỏi mới] (// stackoverflow.com/questions/ask) và bao gồm một liên kết đến câu hỏi này để giúp cung cấp ngữ cảnh. Xem: [Đặt câu hỏi, nhận câu trả lời, không phiền nhiễu] (// stackoverflow.com/tour) – g00glen00b

1

Vì điều này chưa có câu trả lời được chấp nhận, có một thư viện tuyệt vời hoạt động trong Python 3 mà tôi tìm thấy sau nhiều lần tìm kiếm và thất bại khi sử dụng PyPDF2, chi nhánh beta wkhtmltopdf cho Python 3, qpdf, v.v. là weasyprint. Tôi có câu trả lời và mã mẫu có liên quan here.

Đối với đầy đủ sake, từ documentation:

from weasyprint import HTML HTML('http://weasyprint.org/').write_pdf('/tmp/weasyprint-website.pdf')

và nó thực sự hoạt động dễ dàng.

Các vấn đề liên quan