2017-06-20 5 views
0

Ich begann vor kurzem Python zu lernen, und ich möchte bestehende HTML-Datei in PDF-Datei konvertieren. Es ist sehr seltsam, aber pdfkit scheint die einzige Bibliothek für PDF-Dokumente für Python zu sein.Python konfigurieren pdfkit unter Windows

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

tritt ein Fehler auf: OSError: No wkhtmltopdf executable found: "b''"

Wie this lib richtig auf Windows konfigurieren, damit es funktioniert? Ich kann es nicht bekommen :(

+0

pdfkit ist nicht die einzige Option zum Generieren von PDF aus Python. [Sphinx] (http://www.sphinx-doc.org) ist ein sehr leistungsfähiger Dokumentationsgenerator und kann PDF mit LaTeX, [rinohtype] (http://www.mos6581.org/rinohtype/) oder [rst2pdf] ausgeben (http://rst2pdf.ralsina.me) (neben vielen anderen Formaten. Es gibt auch einige andere Python-Pakete, die PDF aus HTML erzeugen können, zB [Weasyprint] (http://weasyprint.org). –

Antwort

0

Es sieht aus wie Sie wkhtmltopdf installieren. Für Windows kann der Installateur bei https://wkhtmltopdf.org/downloads.html

Überprüfen Sie auch einen Beitrag von diesem Kerl zu finden, der das gleiche Problem hat : Can't create pdf using python PDFKIT Error : " No wkhtmltopdf executable found:"

+0

Danke. Das letzte Mal habe ich versucht, wkhtmltopdf über pip zu installieren und es hat nicht funktioniert.Nach einer großen Anzahl von Versuchen lösen diese Codezeilen (genau) das Problem 'config = pdfkit.configuration (wkhtmltopdf =" C: \\ Programme \\ wkhtmltopdf \\ bin \\ wkhtmltopdf.exe ") pdfkit.from_url ('http://google.com', 'out.pdf', configuation = config)' SO WIRD ES GEKABELT! Wie schreibt man überhaupt mit python? :) –

+0

Oh nein. Pdfkit funktioniert furchtbar. Nach einigen Tests stellte sich heraus, dass einige HTML-Dateien nicht korrekt von pdfkit lib konvertiert werden können. Als Ausgabe gibt es leere Tabellen und so weiter ... Warum gibt es keine Arbeits-Lib für die PDF-Verarbeitung ??? –

0

fand ich Arbeitslösung Wenn Sie Dateien in das pDF-Format einfach nicht python konvertieren wollen zu diesem Zweck verwenden Sie benötigen Server DOMPDF Bibliothek in pHP-Skript auf dem lokalen/entfernen schließen Etwas... so:

<?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(); 
} 

Dann können Sie in Ihrem Python-Skript Ihren HTML- oder anderen Inhalt auf Ihren Server posten und die erzeugte PDF-Datei als Antwort erhalten. So etwas wie das:

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() 
Verwandte Themen