2017-06-20 145 views
0

我最近開始學習python,我想將現有的html文件轉換爲pdf文件。這很奇怪,但pdfkit似乎是python的pdf文檔的唯一庫。發生Python在Windows上配置pdfkit

import pdfkit 
pdfkit.from_file("C:\\Users\\user\Desktop\\table.html", "out.pdf") 

錯誤: OSError: No wkhtmltopdf executable found: "b''"

如何在Windows正確配置this lib,使其工作?我不能讓它:(

+0

pdfkit不是從Python生成PDF的唯一選項。 [Sphinx](http://www.sphinx-doc.org)是一個非常強大的文檔生成器,可以使用LaTeX,[rinohtype](http://www.mos6581.org/rinohtype/)或[rst2pdf]輸出PDF (http://rst2pdf.ralsina.me)(還有許多其他格式,還有一些可以從HTML生成PDF的其他Python軟件包,例如[Weasyprint](http://weasyprint.org)) –

回答

0

看起來你需要安裝wkhtmltopdf。對於Windows,安裝程序可以在https://wkhtmltopdf.org/downloads.html

發現同樣被這傢伙,誰是有同樣的問題,檢查後:Can't create pdf using python PDFKIT Error : " No wkhtmltopdf executable found:"

+0

謝謝。上次我嘗試通過pip安裝wkhtmltopdf並且它沒有工作,經過大量嘗試,這些代碼行(正好)解決了問題'config = pdfkit.configuration(wkhtmltopdf =「C:\\ Program Files \\ wkhtmltopdf \\ bin \\ wkhtmltopdf.exe「) pdfkit.from_url('http://google.com','out.pdf',configuration = config)'IT is SO WIRED!你甚至可以用python編碼嗎? :) –

+0

哦,不。 Pdfkit工作非常糟糕。經過一些測試後發現一些html文件不能被pdfkit lib正確轉換。作爲一個輸出它給空表等等......爲什麼沒有工作的PDF處理? –

0

我找到工作的解決方案 如果你想將文件轉換爲PDF格式,只是不使用Python用於此目的 您需要包括DOMPDF庫到你的PHP腳本在本地/刪除服務器的東西。像這樣:

<?php 
// include autoloader 
require_once 'vendor/autoload.php'; 
// reference the Dompdf namespace 
use Dompdf\Dompdf; 

if (isset($_POST['html']) && !empty($_POST['html'])) { 
    // instantiate and use the dompdf class 
    $dompdf = new Dompdf(); 
    $dompdf->loadHtml($_POST['html']); 

    // (Optional) Setup the paper size and orientation 
    $dompdf->setPaper('A4', 'landscape'); 

    // Render the HTML as PDF 
    $dompdf->render(); 

    // Output the generated PDF to Browser 
    $dompdf->stream(); 
} else { 
    exit(); 
} 

然後在您的python腳本中,您可以發佈您的html或任何內容到您的服務器並獲得生成的pdf文件作爲響應。類似這樣的:

import requests 

url = 'http://example.com/html2pdf.php' 
html = '<h1>hello</h1>' 
r = requests.post(url, data={'html': html}, stream=True) 

f = open('converted.pdf', 'wb') 
f.write(r.content) 
f.close()