Qt 分页标题打印
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 分页标题打印的更多相关文章
- Qt中的打印操作
Qt中对打印的支持是有一个独立的printsupport模块来完成的,所以,要想在程序中使用Qt的打印功能,必须先在pro文件中添加下面这句代码: QT += printsupport在这个模块中,提 ...
- (转)WEB页面导出为Word文档后分页&横向打印的方法
<html> <HEAD> <title>WEB页面导出为Word文档后分页&横向打印的方法 </title> < ...
- Qt Graphics-View的打印功能实现
本文来研究一下Qt Graphics-View的打印功能实现. 在Qt的官方文档中介绍了Graphics-View的打印相关内容. Qt中对打印的支持是有一个独立的printsupport模块来完成的 ...
- NPOI导出EXCEL 打印设置分页及打印标题
在用NPOI导出EXCEL的时候设置分页,在网上有查到用sheet1.SetRowBreak(i)方法,但一直都没有起到作用.经过研究是要设置 sheet1.FitToPage = false; 而 ...
- [转]NPOI导出EXCEL 打印设置分页及打印标题
本文转自:http://www.cnblogs.com/Gyoung/p/4483475.html 在用NPOI导出EXCEL的时候设置分页,在网上有查到用sheet1.SetRowBreak(i)方 ...
- Qt 无标题无边框程序的拖动和改变大小
最近做项目遇到的问题,总结下. 有时候我们觉得系统的标题栏和按钮太丑太呆板,想做自己的标题栏以及最大化.最小化.关闭,菜单按钮,我们就需要 setWindowFlags(Qt::FramelessWi ...
- QT无标题窗口在任务栏显示关闭(增加系统菜单)
在对话框中使用了如下代码: setWindowFlags(Qt::FramelessWindowHint); 在任务栏上右键点击程序,不会弹出菜单,解决办法,使用下面代码: setWindowFlag ...
- Qt分页导航控件
最近在使用QTableWidget时,因为结果数量比较多而且又有单元格控件,为了改善效率要做分页处理.在网上找了一番,最后在http://www.cppblog.com/biao/archive/20 ...
- Qt 使用qDebug() 打印Qlist 容器数据(将QDebug()定义成某个类的友元函数)
当QList<T>容器中的数据用qDebug() 打印时 ,假如 T 是内置类型(int float ...)与 打印一个字符串使用完全一样,假如T 是一个CustomerClass 那 ...
随机推荐
- MySQL表的操作
一.存储引擎(了解) 前几节我们知道mysql中建立的库===>文件夹,库中的表====>文件 现实生活中我们用来存储数据的文件有不同的类型,每种文件类型对应各自不同的处理机制:比如处理文 ...
- docker环境下的测试
docker作为容器常见用于快速部署,最近有个项目是基于docker的,总结一下docker的测试. 1.在主机中安装Docker: ubuntu安装:curl -s https://get.dock ...
- Linux 启动时profile、bashrc、~/.bash_profile、~/.bashrc、~/.bash_profile执行顺序以及文件说明
Linux 启动时profile.bashrc.~/.bash_profile.~/.bashrc.~/.bash_profile执行顺序以及文件说明 一.执行顺序 登录linux时,/etc/pro ...
- 正则表达式,js里的正则应用
我爱撸码,撸码使我感到快乐!大家好,我是Counter.好吧已经到凌晨了,其实还是蛮困的,体力不支了,想了想还是把今天任务结束掉吧,为期5天,又重新把JavaScript以及jQuery给大致过了一遍 ...
- 论文笔记:Fast Online Object Tracking and Segmentation: A Unifying Approach
Fast Online Object Tracking and Segmentation: A Unifying Approach CVPR-2019 2019-03-11 23:45:12 Pape ...
- vue ui 启动,浏览器报错Unexpected token <
可能的解决办法: 选择清空缓存并硬性重新加载页面. 如果不行,全局卸载@vue/cli,重新安装.
- svn hotcopy backup
================== 备份 1/2 ==================svnbackup.bat@echo off@rem Subversion Server 的安装目录set SV ...
- centos7 基础命令
一: linux基础 (1) 查看服务器的IP信息 ip add showifconfig (2) 操作网卡命令(重启网络和启用网卡) systemctl restart networksystemc ...
- linux 修改普通用户的 max user process
因为出现 fork: retry: No child processes 问题 , google了一下 , 大家说是要去修改 /etc/security/limits.conf 文件 , 然后我用r ...
- JAVA-变量
静态变量只能在类主体中定义,不能在方法中定义