码迷,mamicode.com
首页 > 其他好文 > 详细

使用QPrinter生成pdf或用打印机打印数据

时间:2014-11-19 12:05:47      阅读:985      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   ar   color   os   使用   sp   

1.使用html生成表格

bubuko.com,布布扣
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文档

bubuko.com,布布扣
    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.使用打印机打印

bubuko.com,布布扣
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

 

使用QPrinter生成pdf或用打印机打印数据

标签:style   blog   http   io   ar   color   os   使用   sp   

原文地址:http://www.cnblogs.com/jck34/p/4107885.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!