• 2684阅读
  • 3回复

[提问]如何将webengine打开的界面放入打印预览中打印 [复制链接]

上一主题 下一主题
离线htamwidt
 

只看楼主 倒序阅读 楼主  发表于: 2018-07-25
回复本帖可获得1RMB金钱奖励!
每人最多可获奖1次,奖池剩余4RMB金钱 (中奖几率10%)
关键词: webengine打印html

void MainWindow::Printer()
{
    webView = new QWebEngineView(this);
    webView->load(QUrl("http://www.baidu.com"));


    QPrinter printer(QPrinter::HighResolution);
    QPrintPreviewDialog printPreDlg(&printer,this);
    connect(&printPreDlg, &QPrintPreviewDialog::paintRequested,
            [=, this](QPrinter* printer)
    {
        QPainter painter;
        if (! painter.begin(printer))
        {
            // failed to open file
            qWarning("failed to open file, is it writable?");
            return ;
        }
        QString text = "123123321";
        painter.drawText(10, painter.fontMetrics().height()*1, text);
        QPixmap img(":/html/logo.png");
        painter.drawPixmap(500,500,img);
        painter.end();
    });

    printPreDlg.exec();
}
可以简单调用打印预览,打印内容如何调用webengine内展示的界面

离线maxlogo

只看该作者 1楼 发表于: 2018-07-26
回帖奖励+ 1
截屏
个人博客:
简书:https://www.jianshu.com/u/14fa805306bd
CSDN:https://blog.csdn.net/qq10097355
思否:https://segmentfault.com/u/lowbees/articles
离线htamwidt

只看该作者 2楼 发表于: 2018-07-26
回 maxlogo 的帖子
maxlogo:截屏 (2018-07-26 01:12) 

大哥,如何将这类格式的图片放到画布里打印出来呢;data:image/png;base64;
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA7wAAANICAYAAADkQOM4AAAgAElEQVR4XuzdCZhUxbn/8bdn39h
离线htamwidt

只看该作者 3楼 发表于: 2018-07-26
回 maxlogo 的帖子
maxlogo:截屏 (2018-07-26 01:12) 

已通过html,将图片生成data:image/png;base64地址,现在要做的就是把它绘制出来打印,怎么放到画布里呢;截屏的方式怕是不好定位,因为只需要一部分html界面;
快速回复
限100 字节
 
上一个 下一个