void ItemSplitter::printpdf(const QString& fileName){

    QPrinter printer_html(QPrinter::ScreenResolution);
printer_html.setPageSize(QPrinter::A4);
printer_html.setOutputFormat(QPrinter::PdfFormat);
printer_html.setOutputFileName(fileName);
QPainter painter( &printer_html ); QSizeF pageSize(printer_html.pageRect().width(),printer_html.pageRect().height()); TreeItem * treeItem = rootItem;
QString logo = ("");
QString date = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"); QString htmltable[],htmlbody[],htmlfront[],htmltext; htmlbody[] +="<html>";
htmlbody[] +="<body>";
htmlbody[] +="</body>";
htmlbody[] +="</html>"; htmltable[] +="<div><table width=\"85%\" align=\"center\">";
htmltable[] +="</table></div>"; htmlfront[] +=htmltable[];
htmlfront[] +="<tr><td><h1>"+QString("Parameter Report") + "</h1></td><td align=\"right\"><h1>"+ logo +"</h1></td> </tr>";
htmlfront[] +="<tr><td><h3>"+ date + " Page ";
htmlfront[] +="</h3></td><td align=\"right\" ><img src = \"logoprint.png\"></td></tr>";
htmlfront[] +="<tr><td colspan = \"2\"><hr/></td></tr>";
htmlfront[] +=htmltable[]; int pagenum = ;
int counter = ;
htmltext.clear();
htmltext+=htmlfront[];
htmltext+=QString::number(++pagenum);
htmltext+=htmlfront[];
htmltext += htmlbody[];
htmltext += htmltable[];
for( int i = ; i < treeItem->childCount() ; ++i)
{
TreeItem* it1 = treeItem->child(i);
htmltext +="<tr>";
htmltext += "<td colspan = \"4\">";
htmltext += "<strong>";
htmltext+= "Collumn " + it1->data(E_COORDINATE).toString();
htmltext+= ": " + it1->data(E_NAME).toString();
htmltext += "</strong>";
htmltext += "</td>";
htmltext +="</tr>";
counter += ;
for( int i = ; i < it1->childCount() ; ++i ,++counter)
{
TreeItem* it2 = it1->child(i);
htmltext +="<tr>";
htmltext +="<td>";
htmltext+= it2->data(E_COORDINATE).toString();
htmltext +="</td>"; htmltext +="<td>";
htmltext+= it2->data(E_NAME).toString();
htmltext +="</td>"; htmltext +="<td>";
htmltext+= it2->data(E_VALUE).toString();
htmltext +="</td>"; htmltext +="<td align=\"right\">";
htmltext+= it2->data(E_UNIT).toString();
htmltext +="</td>";
htmltext +="</tr>";
}
htmltext +="<tr>";
htmltext += "<td colspan = \"4\">";
htmltext += "</td>";
htmltext +="</tr>";
int nextcount;
if(i + < treeItem->childCount()){
it1 = treeItem->child(i + );
nextcount = it1->childCount();
}
else
{
nextcount = ;
}
if(counter + nextcount + > )
{
counter = ;
htmltext+=htmltable[];
// htmltext+="<div style=\"page-break-after:auto !important;\"></div>";
QTextDocument text_document;
text_document.setHtml(htmltext);
text_document.setPageSize(pageSize);
text_document.drawContents(&painter);
printer_html.newPage();
htmltext.clear();
htmltext+=htmlfront[];
htmltext+=QString::number(++pagenum);
htmltext+=htmlfront[];
htmltext +=htmltable[];
}
}
// qDebug() << html;
if( counter > )
{
htmltext += htmlbody[];
QTextDocument text_document;
text_document.setHtml(htmltext);
text_document.setPageSize(pageSize);
text_document.drawContents(&painter);
qDebug() <<" page count:" << text_document.pageCount();
} }

Qt 分页标题打印的更多相关文章

  1. Qt中的打印操作

    Qt中对打印的支持是有一个独立的printsupport模块来完成的,所以,要想在程序中使用Qt的打印功能,必须先在pro文件中添加下面这句代码: QT += printsupport在这个模块中,提 ...

  2. (转)WEB页面导出为Word文档后分页&横向打印的方法

    <html>    <HEAD>        <title>WEB页面导出为Word文档后分页&横向打印的方法 </title>    < ...

  3. Qt Graphics-View的打印功能实现

    本文来研究一下Qt Graphics-View的打印功能实现. 在Qt的官方文档中介绍了Graphics-View的打印相关内容. Qt中对打印的支持是有一个独立的printsupport模块来完成的 ...

  4. NPOI导出EXCEL 打印设置分页及打印标题

    在用NPOI导出EXCEL的时候设置分页,在网上有查到用sheet1.SetRowBreak(i)方法,但一直都没有起到作用.经过研究是要设置  sheet1.FitToPage = false; 而 ...

  5. [转]NPOI导出EXCEL 打印设置分页及打印标题

    本文转自:http://www.cnblogs.com/Gyoung/p/4483475.html 在用NPOI导出EXCEL的时候设置分页,在网上有查到用sheet1.SetRowBreak(i)方 ...

  6. Qt 无标题无边框程序的拖动和改变大小

    最近做项目遇到的问题,总结下. 有时候我们觉得系统的标题栏和按钮太丑太呆板,想做自己的标题栏以及最大化.最小化.关闭,菜单按钮,我们就需要 setWindowFlags(Qt::FramelessWi ...

  7. QT无标题窗口在任务栏显示关闭(增加系统菜单)

    在对话框中使用了如下代码: setWindowFlags(Qt::FramelessWindowHint); 在任务栏上右键点击程序,不会弹出菜单,解决办法,使用下面代码: setWindowFlag ...

  8. Qt分页导航控件

    最近在使用QTableWidget时,因为结果数量比较多而且又有单元格控件,为了改善效率要做分页处理.在网上找了一番,最后在http://www.cppblog.com/biao/archive/20 ...

  9. Qt 使用qDebug() 打印Qlist 容器数据(将QDebug()定义成某个类的友元函数)

    当QList<T>容器中的数据用qDebug() 打印时 ,假如 T 是内置类型(int  float ...)与 打印一个字符串使用完全一样,假如T 是一个CustomerClass 那 ...

随机推荐

  1. element-ui表单form和rules踩坑

    问题: 代码: <el-form ref="form" :rules="rules" :model="form" label-widt ...

  2. struts2+springmvc+hibernate开发。个人纪录

    对于很多新手来说,都不太清楚应该怎么去放置代码并让他成为一种习惯.个人的总结如下: 一.基础包类的功能 1.dao :提供底层接口 2.daoimpl:实现底层接口类,与底层交互 3.entity:实 ...

  3. php,js 对字符串按位异或运算加密解密

    异或的符号是^.按位异或运算, 对等长二进制模式按位或二进制数的每一位执行逻辑按位异或操作. 操作的结果是如果某位不同则该位为1, 否则该位为0. xor运算的逆运算是它本身,也就是说两次异或同一个数 ...

  4. postgresql开启网络连接

    默认情况下,postgresql是只允许localhost连接的,如果需要使用远程连接,需要修改两个配置文件. postgresql.conf 和 pg_hba.conf 在postgresql.co ...

  5. top命令详解不完整的地方欢迎评论

    第一行: top - 20:42:47 up 57 days,  1:25,  4 users,  load average: 0.00, 0.00, 0.00 现在时间20:42:47,启动了57 ...

  6. 纯CSS3完成选项卡,不要js完成的选项卡

    我爱撸码,撸码使我感到快乐!大家好,我是Counter.今天就来敲一敲,选项卡,注意哦,不是一般利用js完成的选项卡,今天是纯用HTML和CSS来完成的,这怎么可能?那你不用js的点击事件,怎么处理? ...

  7. THUSCH 2017 大魔法师(矩阵乘法+线段树)

    题意 https://loj.ac/problem/2980 思路 区间修改考虑用线段树维护.由于一段区间的 \(A,B,C\) 可以表示成由原来的 \(A,B,C\) 乘上带上系数再加上某一个某个常 ...

  8. Python连接redis时要注意的点

    一.一般连接redis情况 from redis import Redis # 实例化redis对象 rdb = Redis(host='localhost', port=6379, db=0) rd ...

  9. 2019 年 SpreadJS产品路线图(Roadmap)

    前言 | 问题背景 SpreadJS已经发展成为市场上最好的纯前端JavaScript电子表格之一,但对于用户的需要和产品功能的改善,我们才刚刚开始! 在过去的一年中,我们发布了两个Service P ...

  10. 说说Python中的闭包

    Python中的闭包不是一个一说就能明白的概念,但是随着你往学习的深入,无论如何你都需要去了解这么一个东西. 闭包的概念 我们尝试从概念上去理解一下闭包. 在一些语言中,在函数中可以(嵌套)定义另一个 ...