seit kurzen wollte ich an meinem Programm weiter arbeiten um aus yaml und HTML Dateien eine PDF Rechnung zu erstellen, leider laufe ich aktuell immer in einen Fehler den ich mit nicht erklären kann, geschweige den wüsste wie ich den beheben soll.
Ich habe folgenden Code (Ausschnitt)
Code: Alles auswählen
with codecs.open(index_html, encoding="utf-8") as index_file:
html_text = index_file.read()
compiler = Compiler()
template = compiler.compile(html_text)
html_text = template(document_data)
pdf = HTML(string=html_text)
pdf.write_pdf('test.pdf')
Code: Alles auswählen
import sys
import codecs
import yaml
import locale
import argparse
from pybars import Compiler
from weasyprint import HTML
Wenn ich den weasyprint Teil ausklammere, verschwinden die Fehler, aber es wird natürlich auch kein PDF generiert. Leider bin ich völlig ratlos.Traceback (most recent call last):
File "./buildpdf.py", line 71, in <module>
pdf = HTML(string=html_text)
File "/usr/local/lib/python2.7/dist-packages/weasyprint/__init__.py", line 95, in __init__
namespaceHTMLElements=False)
File "/usr/lib/python2.7/dist-packages/html5lib/html5parser.py", line 35, in parse
return p.parse(doc, **kwargs)
File "/usr/lib/python2.7/dist-packages/html5lib/html5parser.py", line 235, in parse
self._parse(stream, False, None, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/html5lib/html5parser.py", line 85, in _parse
self.tokenizer = _tokenizer.HTMLTokenizer(stream, parser=self, **kwargs)
File "/usr/lib/python2.7/dist-packages/html5lib/_tokenizer.py", line 36, in __init__
self.stream = HTMLInputStream(stream, **kwargs)
File "/usr/lib/python2.7/dist-packages/html5lib/_inputstream.py", line 151, in HTMLInputStream
return HTMLBinaryInputStream(source, **kwargs)
File "/usr/lib/python2.7/dist-packages/html5lib/_inputstream.py", line 410, in __init__
self.rawStream = self.openStream(source)
File "/usr/lib/python2.7/dist-packages/html5lib/_inputstream.py", line 448, in openStream
stream = BytesIO(source)
TypeError: 'strlist' does not have the buffer interface