Hallo,
ich nutze qwebkit, um mittels render() ein pdf-Datei zu erzeugen. Bislang funktioniert das auch ganz gut. An einer stelle wird in den per setHtml() (QMainFrame) eingefügten html-Code auch eine inline SVG-Grafik eingebunden. Selbige wird unter Linux auch korrekt dargestellt. Erstelle ich das PDF aber unter windows, erscheint an der stelle der Grafik nur "image/svg+xml".
Ich dachte, daß dies möglicherweise an der Verwendung von setHtml() anstelle von setContent() liegt. Damit kam ich aber überhaupt nicht weiter, denn der html-Code liegt mir als unicode string vor, und selbigen konnte ich nicht in ein QByteArray umwandeln, um ihn mittels setContent() zu laden.
Kann mir jemand helfen, die html-Seite einschließlich der inline svg-Grafik sowohl unter Linux wie auch unter Windows darzustellen?
Ich verwende Python 2.7 mit PySide 1.0.6.
[PySide] QWebKit stellt inline-svg unter windows nicht dar
Ich habe inzwischen eine Lösung zu diesem Problem gefunden:
setContent() erwartet ein QBytearray, selbiges erhält man mittels .encode eines unicode-Strings.
Damit konnte ich mich von setHtml() verabschieden und setContent() nutzen.
Der wirkliche Fehler aber wahr wohl, daß ich bei den svg-Grafiken den <?xml ... ?>-Header nicht entfernt hatte.
setContent() erwartet ein QBytearray, selbiges erhält man mittels .encode eines unicode-Strings.
Damit konnte ich mich von setHtml() verabschieden und setContent() nutzen.
Der wirkliche Fehler aber wahr wohl, daß ich bei den svg-Grafiken den <?xml ... ?>-Header nicht entfernt hatte.