使用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("保存成功"));

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     }

时间: 2024-11-11 19:12:28

使用QPrinter生成pdf或用打印机打印数据的相关文章

在.net Core 使用PDF模板文件生成PDF文件,代替WEB打印控件!

这几天找WEB打印控件,要么收费的,要么免费的只能在IE里用! 我只想简单的打个标签纸!百度2天,看到一老兄说可以用PDF,然后又开始百度..找到了一篇文章 http://www.jianshu.com/p/d518d0988621    本文代码全部摘抄至这篇文章,发文只为记录! 不同的是我导入的库是iTextSharp.LGPLv2.Core.Fix 开始 一.先用word制作好模板文件,标签打印的话注意页边距,然后另存为PDF格式文件 二.然后下载adobe acrobat pro,创建时

java调用wkhtmltopdf生成pdf文件,美观,省事

最近项目需要导出企业风险报告,文件格式为pdf,于是搜了一大批文章都是什么Jasper Report,iText ,flying sauser ,都尝试了一遍,感觉不是我想要的效果, 需要自己调整好多东西,样式,字体等等,好麻烦,毕竟博主这么懒的人,哈哈.-------jstarseven 言归正传: java生成pdf文件,方式很多,以上提到的哪几种方式具体可以参考这篇文章<讲解很详细>:http://blog.csdn.net/ouyhong123/article/details/2640

thinkphp整合系列之tcpdf类生成pdf文件

php生成pdf文件的需求是不怎么常见的:当然也是有的: 既然已经整合使用了:那就写篇博客来讲解下吧: 示例项目:http://git.oschina.net/shuaibai123/thinkphp-bjyadmin 一:引入tcpdf /ThinkPHP/Library/Vendor/Tcpdf 把tcpdf整个目录拷到自己的项目中: 二:函数 /Application/Common/Common/function.php /** * 生成pdf * @param  string $html

C#调用斑马打印机打印条码标签(支持COM、LPT、USB、TCP连接方式和ZPL、EPL、CPCL指令)

在批量打印商品标签时一般都要加上条码或图片,而这类应用大多是使用斑马打印机,所以我也遇到了怎么打印的问题. 一种办法是用标签设计软件做好模板,在标签设计软件中打印,这种办法不用写代码,但对我来说觉得不能接受,所以尝试代码解决问题. 网上搜索一番,找不到什么资料,基本都是说发送ZPL.EPL指令到打印机,而且还是COM/LPT口连接打印机.后来研究.net的打印类库,发现是用绘图方式打印至打印机的,也叫GDI打印,于是思路有了点突破,那我可以用报表工具画好标签,运行报表时,把结果输出位图,再发送至

【原创】岁月如歌 一款网易歌单生成pdf的软件

介绍 这是一款可以将网易云音乐的歌单中所有歌词输出为pdf的软件. 项目持续维护地址 http://brightguo.com/song-list-to-pdf/ 目前没有搜到相关网易歌单导出为pdf的软件,因此我特地将此软件开发出来免费给大家使用,不清楚会有多少人有这个需求,能帮一个是一个吧~ 本站下载链接(速度较慢)      百度云下载链接 支持操作系统 >= Win7 如有问题欢迎写信给我 [email protected] 使用 软件只有一个界面,将歌单地址复制粘贴进去,点击生成后即可

利用ItextPdf、core-renderer-R8 来生成PDF

近期因为工作上的须要,须要做一个简历产品的下载功能,而下载的形式要去为PDF,内容要求为整个简历的内容,并且格式上要求和简历的格式排版时一致的!前期调研.开发,最后測试上线.差点儿相同花了7天的时间.当然,期间主要完毕了主体功能.如今的话,该功能已经相当完好. 以下,我主要是总结下我在这个开发的过程中遇到的问题和总结的心得.希望能帮组有这方面须要的人. 原创文章,转载请注明出处:http://blog.csdn.net/jessonlv 前期调研 前期调研的时候,在网上看了非常多关于转pdf的相

ITextSharp用来生成 PDF 的一个组件

iTextSharp 是用来生成  PDF 的一个组件,在 1998 年夏天的时候,Bruno Lowagie ,iText 的创作者,参与了学校的一个项目,当时使用 HTML 来生成报告,但是,使用 HTML 打印的效果很不理想.最后,他发现,使用 PDF 可以完美解决打印问题,为了能够在各个系统中使用,iText 组件库诞生了. 网页上面浏览pdf,目前一般是先转成swf格式,再查看. http://sourceforge.net/projects/itextsharp/files/

Java jacob调用打印机打印word文档

前面说了Java如何生成复杂的Word文档,今年记录下Java如何调用打印机打印word文档. 起初用的是自带的PrintJob,但是系统提供的打印机制比不成熟完整.网上的代码也是千篇一律,在我的打印设备Canon iR2525/2530 UFRII LT上,我能获取到打印机的各属性,当前任务数.但是打印机没反应. 可参考这两篇文章: http://www.360doc.com/content/05/0916/11/332_12789.shtml http://www.ibm.com/devel

串口小票打印机打印乱码问题

-------------------------------------- editor:YeungChi date:2016/3/29 describe:小票打印机乱码问题 文章内容:一.参数解释 二.串口连接打印机设置案例 -------------------------------------- 串口是一种非常通用的设备通信的协议: 一.参数解释 波特率 这是一个衡量符号传输速率的参数.它表示每秒钟传送的符号的个数.例如300波特表示每秒钟发送300个符号.当我们提到时钟周期时,我们就