提问人:Maanu 提问时间:4/18/2023 更新时间:4/18/2023 访问量:41
QWebEngine html 到 pdf 转换显示 QTWebEngineProcess 的控制台窗口
QWebEngine html to pdf conversion shows console window for QTWebEngineProcess
问:
我们使用 Qt Web Engine 将 html 转换为 pdf。使用的代码如下。此代码工作正常。问题是在执行代码时,会出现QTWebEngineProcess.exe的控制台窗口。如果用户关闭窗口,则 pdf 打印将无法完成,应用程序将挂起。
只有当代码是从大型 QT 小部件应用程序执行时,才会出现该窗口(即使代码是在创建 QApplication 对象后执行的)。如果我们从boost测试用例中执行相同的代码,则不会出现该窗口。
显示窗口的原因可能是什么,以及如何避免此窗口显示?
我们使用 Qt5.12.6
QWebEnginePage report;
bool printingSuccessful = false;
bool loadSuccessful = false;
QObject::connect(&report, &QWebEnginePage::pdfPrintingFinished,
[&printingSuccessful](const QString&, const bool success)
{
printingSuccessful = success;
});
QObject::connect(&report, &QWebEnginePage::loadFinished,
[&loadSuccessful](const bool success)
{
loadSuccessful = success;
});
QEventLoop loop;
QObject::connect(&report, &QWebEnginePage::loadFinished, &loop, &QEventLoop::quit);
report.setHtml(htmlTemplate);
loop.exec();
if (!loadSuccessful)
{
throw std::exception("Could not load Html in QWebEngine.");
}
QObject::connect(&report, &QWebEnginePage::pdfPrintingFinished, &loop, &QEventLoop::quit);
report.printToPdf(QString("C:\\Projects\\xy.pdf"));
loop.exec();
if (!printingSuccessful)
{
throw std::exception("Could not print Html to PDF.");
}
答: 暂无答案
评论