5 Stimmen

Kann ich in Qt mit QWebFrame::print() zusätzliche Rendering-Ebenen liefern?

Ich nutze WebKit von QWebFrame, um HTML-Seiten in PDF zu konvertieren. Ist es möglich, einige zusätzliche Rendering-Logik anzuwenden, bevor die Seite an den QPrinter gesendet wird?

Ich möchte Links und Formularsteuerelemente in HTML in interaktive Entsprechungen in PDF umwandeln können, anstatt nur eine Vektorgrafik zu erhalten.

Vielen Dank für jede Hilfe!

1voto

kizzx2 Punkte 18127

Ich habe eine mögliche Lösung gefunden, indem ich QWebFrame::renderTreeDump() y QWebFrame::findAllElements() (neu in Qt 4.6).

Es ist nicht ganz "zusätzliche Rendering-Ebenen liefern", aber erreicht, was ich tun will: Ich rufe findAllElements() um den DOM-Baum zu scrapen und jede gewünschte Logik anzuwenden, indem ich die Attribute des HTML-Elements setze.

Für kompliziertere Operationen, wie z.B. das Ersetzen von Formularsteuerelementen durch meinen eigenen Rendering-Prozess, muss ich sowohl den DOM-Baum als auch den Rendering-Baum scrapen und den DOM-Baum so bearbeiten, dass das Element nicht an QPrinter . Am Ende scrape ich die resultierende PDF-Datei und füge meine eigenen gerenderten Steuerelemente ein, indem ich die Informationen verwende, die ich aus dem Renderbaum und dem DOM-Baum erhalten habe.

Dies erscheint unnötig kompliziert. Hat jemand eine elegantere Lösung für dieses Problem?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X