Я нашел возможное решение, используя QWebFrame::renderTreeDump()
и QWebFrame::findAllElements()
(новое в Qt 4.6).
Он не совсем «предоставляет дополнительные слои рендеринга», но выполняет то, что я хочу сделать: я вызываю findAllElements()
, чтобы очистить дерево DOM, применить любую логику, которую я хочу, установив атрибуты HTML-элемента.
Для более сложных операций, таких как замена элементов управления формы собственным процессом рендеринга, мне нужно очистить как дерево DOM, так и дерево рендеринга, повозиться с деревом DOM, чтобы элемент не отправлялся на QPrinter
. В конце я очищаю полученный PDF-файл, внедряю свой собственный рендеринг для элементов управления, используя информацию, полученную из дерева рендеринга и дерева DOM.
Это кажется излишне сложным. У кого-нибудь есть более изящное решение этой проблемы?