zoukankan      html  css  js  c++  java
  • 使用QPrinter生成pdf或用打印机打印数据

    1.使用html生成表格

    QString wesiOperateWidget::MakeDataToHtml()
    {
        //表头
        //html = "<table width=100% border=1 cellspacing=0 text-align=center style=border-collapse:collapse>";
        //html += "<tr>";
        //html += "<th>编号</th>";
        //html += "<th>姓名</th>";
        //html += "<th>头部成绩</th>";
        //html += "<th>胸部成绩</th>";
        //html += "</tr>";
        ////数据
        //html += "<tr>";
        //html += "<td align=center>1</td>";
        //html += "<td align=center>赵六</td>";
        //html += "<td align=center>100</td>";
        //html += "<td align=center>400</td>";
        //html += "</tr>";
        //html += "</table>";
        QString html;
        html = "<table width=100% border=1 cellspacing=0 text-align=center style=border-collapse:collapse>";
        html += "<tr>";
        html += "<th>编号</th>";
        html += "<th>姓名</th>";
        html += "<th>头部成绩</th>";
        html += "<th>胸部成绩</th>";
        html += "</tr>";
        QStringList dataStringList;
        QStringList rowInfoList;
        html += "<tr>";
        foreach(QString str, dataStringList)
        {
            rowInfoList = str.split(",");
            for(int i = 0; i < 8; i += 2)
            {
                if(rowInfoList[i] == "number")
                {
                    html = html + "<td align=center>" + rowInfoList[i + i] + "</td>";
                }
                else if(rowInfoList[i] == "name")
                {
                    html = html + "<td align=center>" + rowInfoList[i + i] + "</td>";
                }
                else if(rowInfoList[i] == "headscore")
                {
                    html = html + "<td align=center>" + rowInfoList[i + i] + "</td>";
                }
                else if(rowInfoList[i] == "bodyscore")
                {
                    html = html + "<td align=center>" + rowInfoList[i + i] + "</td>";
                }
            }
        }
        html += "</tr>";
        html += "</table>";
        return html;
    }
    view code

    2.生成pdf文档

        QPrinter printer;
        printer.setPageSize(QPrinter::A4);
        printer.setOutputFormat(QPrinter::PdfFormat);
        QString filepath = QFileDialog::getSaveFileName(this, tr("保存为..."), tr("D://成绩.pdf"), tr("PDF格式(*.pdf)"));
        printer.setOutputFileName(filepath);
        QTextDocument textDocument;
        textDocument.setHtml(MakeDataToHtml());
        textDocument.print(&printer);
        QMessageBox::about(this, tr("提示"), tr("保存成功"));
    View Code

    3.使用打印机打印

    1     QPrinter printer;
    2     printer.setPageSize(QPrinter::A4);
    3     QPrintDialog printDialog(&printer, this);
    4     if (printDialog.exec()){
    5         QTextDocument textDocument;
    6         textDocument.setHtml(MakeDataToHtml());
    7         textDocument.print(&printer);
    8     }
    View Code
  • 相关阅读:
    本地计算机 上的 Redis Server 服务启动后停止
    RabbitMQ 命令行
    mysql ORDER BY 中文出现错误问题
    使用javascript纯前端导出excel
    软件测试概念学习
    excel控件只为简单写入数据表--github找到ExcelUtil笔记
    快速创建Spring web项目
    PQGrid商业化的表格组件
    mybatis传入参数为0被误认为是空字符串的解决方法
    MyBatis like报错
  • 原文地址:https://www.cnblogs.com/jck34/p/4107885.html
Copyright © 2011-2022 走看看