在Qt中,我可以在QWebFrame :: print()中提供额外的渲染层吗?

时间:2010-06-04 07:26:02

标签: qt pdf webkit rendering

我正在利用QWebFrame中的WebKit将HTML页面转换为PDF。在将页面发送到QPrinter之前是否可以应用一些额外的渲染逻辑?

我想要做的是能够将HTML中的链接和表单控件转换为PDF中的交互式对应,而不仅仅是矢量图形转储吗?

非常感谢任何指导!

1 个答案:

答案 0 :(得分:1)

我找到了使用QWebFrame::renderTreeDump()QWebFrame::findAllElements()的可能解决方案(Qt 4.6中的新内容)。

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

对于更复杂的操作,例如用我自己的渲染过程替换表单控件,我需要刮掉DOM树和渲染树,修改DOM树,这样元素就不会被发送到{{1} }。最后,我抓取生成的PDF文件,使用从渲染树和DOM树中获取的信息为控件注入自己的渲染。

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