2010-06-04 25 views

回答

1

我發現一個可能的解決方案,使用QWebFrame::renderTreeDump()QWebFrame::findAllElements()(Qt 4.6中的新增功能)。

它不完全「提供額外的渲染層」,但完成了我想要做的事情:我調用findAllElements()來刮掉DOM樹,通過設置HTML元素的屬性來應用任何我想要的邏輯。

對於更復雜的操作,比如用我自己的渲染過程替換表單控件,我需要刮掉DOM樹和渲染樹,修改DOM樹,所以元素不會發送到QPrinter。最後,我抓取得到的PDF文件,使用從渲染樹和DOM樹獲得的信息注入我自己渲染的控件。

這種感覺不必要的複雜。有沒有人有這個問題的更優雅的解決方案?

相關問題