2010-06-04 83 views

回答

1

我发现一个可能的解决方案,使用QWebFrame::renderTreeDump()QWebFrame::findAllElements()(Qt 4.6中的新增功能)。

它不完全“提供额外的渲染层”,但完成了我想要做的事情:我调用findAllElements()来刮掉DOM树,通过设置HTML元素的属性来应用任何我想要的逻辑。

对于更复杂的操作,比如用我自己的渲染过程替换表单控件,我需要刮掉DOM树和渲染树,修改DOM树,所以元素不会发送到QPrinter。最后,我抓取得到的PDF文件,使用从渲染树和DOM树获得的信息注入我自己渲染的控件。

这种感觉不必要的复杂。有没有人有这个问题的更优雅的解决方案?

相关问题