繁体   English   中英

Qt WebEngine打印时页边距不正确

[英]Qt WebEngine incorrect page margins when printing

我实现了在项目中打印报告的功能。 报告以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。

这是WebEngine中的错误。 我已经报告了它,并将尽快修复它。 解决方法是,可以在QPrinter中启用全页打印:

printer->setFullPage(true);

这对我有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM