2

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

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

PS 我没有使用printToPdf()方法,因为它会生成一个非常大的 pdf(大约 5MB)。

4

1 回答 1

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);
}
于 2018-05-16T18:06:37.813 回答