Qt WebEngine неверные поля страницы при печати

Я реализую возможность печати отчетов в моем проекте. Отчеты представлены в виде HTML-контента. Есть экземпляр QPrinter с настраиваемыми полями:

printer = new QPrinter(QPrinter::ScreenResolution);
qreal topMargin = 15;
qreal bottomMargin = 15;
qreal leftMargin = 20;
qreal rightMargin = 15;
QPrinter::Unit units = QPrinter::Millimeter;
printer->setPageMargins(leftMargin,topMargin,rightMargin,bottomMargin,units);

При печати в PDF все нормально

view->printToPdf([=] (QByteArray bd) {
//Запись файла
}, printer->pageLayout());

Но при печати с помощью функции «печать» поля устанавливаются неправильно:

QWebEnginePage *page = new QWebEnginePage;
page->setHtml(currentForPrint);

connect(page, &QWebEnginePage::loadFinished, [page, printer] (bool ok) {
if (!ok) {
qDebug() << "error"; return;
}
page->print(printer, [=] (bool ok) {
if (ok)
qDebug() << "success";
else
qDebug() << "error 2";
});
});

образ

Версия Qt — 5.9.3.

0

Решение

Это ошибка в WebEngine. Я сообщил об этом и исправлю это как можно скорее. В качестве обходного пути вы можете включить полную печать страницы в своем QPrinter:

printer->setFullPage(true);

Это работает для меня.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]