5
我利用QWebFrame中的WebKit將HTML頁面轉換爲PDF。在頁面發送到QPrinter之前是否可以應用一些額外的呈現邏輯?在Qt中,我可以QWebFrame :: print()提供額外的渲染層嗎?
我想要做的就是能夠將HTML中的鏈接和表單控件轉換爲PDF中的交互對象,而不僅僅是一個矢量圖形轉儲?
非常感謝任何指導!
我利用QWebFrame中的WebKit將HTML頁面轉換爲PDF。在頁面發送到QPrinter之前是否可以應用一些額外的呈現邏輯?在Qt中,我可以QWebFrame :: print()提供額外的渲染層嗎?
我想要做的就是能夠將HTML中的鏈接和表單控件轉換爲PDF中的交互對象,而不僅僅是一個矢量圖形轉儲?
非常感謝任何指導!
我發現一個可能的解決方案,使用QWebFrame::renderTreeDump()
和QWebFrame::findAllElements()
(Qt 4.6中的新增功能)。
它不完全「提供額外的渲染層」,但完成了我想要做的事情:我調用findAllElements()
來刮掉DOM樹,通過設置HTML元素的屬性來應用任何我想要的邏輯。
對於更復雜的操作,比如用我自己的渲染過程替換表單控件,我需要刮掉DOM樹和渲染樹,修改DOM樹,所以元素不會發送到QPrinter
。最後,我抓取得到的PDF文件,使用從渲染樹和DOM樹獲得的信息注入我自己渲染的控件。
這種感覺不必要的複雜。有沒有人有這個問題的更優雅的解決方案?