其他分享
首页 > 其他分享> > QWebEngineView之加载html打印PDF

QWebEngineView之加载html打印PDF

作者:互联网

QWebEngineView

通过QWebEngineView加载html文件打印pdf相比自己手动绘制pdf简单的多,制作好对应的html文件,然后Qfile读取html文件模板,替换函数需要替换的value,存成html文件,然后QWebEngineView加载,就直接能够打印成对应格式的pdf了。

//读取html文件
    QFile outFile(QStringLiteral("C://Users//JWGB//Desktop//出厂检验报告.html"));
    if(!outFile.open(QIODevice::ReadWrite))
    {
        qDebug()<<outFile.errorString();
    }
    QByteArray read = outFile.readAll();
    //替换对应的value
    read.replace("#value1#","aaaa");
    read.replace("#value1#","bbbb");
    read.replace("#value1#","CCCCC");
        outFile.close();
    outFile.setFileName(QStringLiteral("C://Users//JWGB//Desktop//出厂检验报告Temp.html");
            if(!outFile.open(QIODevice::ReadWrite ))
            {
                qDebug()<<outFile.errorString();
            }
    outFile.write(read);
    outFile.close();

    ui->textBrowser->setHtml(read);
    m_pView->load(QUrl(QStringLiteral("C://Users//JWGB//Desktop//出厂检验报告Temp.html"));

  //需要等QWebEngineView加载完成之后才能进行打印
  QPageLayout layout(QPageSize(QPageSize::A4), QPageLayout::Portrait, QMarginsF());
  m_pView->page()->printToPdf(QStringLiteral("C://Users//JWGB//Desktop//3p出厂检验报告.pdf"),layout);

标签:Desktop,JWGB,html,QWebEngineView,pdf,PDF,加载
来源: https://blog.csdn.net/congwang3960/article/details/120882064