我实现了在项目中打印报告的功能。报告以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 :(得分:0)
这是WebEngine中的一个错误。我已经报告了,并且一旦可能就会立即修复它。作为一种解决方法,您可以在QPrinter中启用整页打印:
printer->setFullPage(true);
这适合我。