QWebEnginePage打印到PDF并不像Google Chrome那样在PDF中打印可选文本

时间:2018-05-15 12:15:33

标签: c++ qt qtwebengine webengine

我尝试使用print()方法和此方法所需的QPrinter实例从QWebEngineView打印html文档。

我遇到的问题是,在生成的PDF中,我无法选择任何可用的文本。 PDF在某种程度上是简单的,就像PDF文件中的图片一样。 考虑到Qt的WebEngine与Chromium(谷歌浏览器)的WebEngine相同,它们应该以相同的方式运行,但是从Chrome导出的PDF中我能够选择文本。 有没有办法控制pdf的导出方式?

P.S。我没有使用printToPdf()方法,因为它会产生非常大的pdf(aprox.5MB)。

1 个答案:

答案 0 :(得分:0)

以页面/ pdf质量为代价,您可以将QWebEngineView页面注入html并将html加载到可以打印的QTextDocument中。

webview->page()->toHtml([this](const QString& result){handlePagePrint(result);});

void handlePagePrint(QString result)
{
    QTextDocument td;
    td.setHtml(result);
    td.print(&printer);
}