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 那 ...
随机推荐
- BindingResult 作用原理
controller代码 @RequestMapping("") public String index(@Valid User user , BindingResult bind ...
- MySQL表的操作
一.存储引擎(了解) 前几节我们知道mysql中建立的库===>文件夹,库中的表====>文件 现实生活中我们用来存储数据的文件有不同的类型,每种文件类型对应各自不同的处理机制:比如处理文 ...
- Mac休眠后解决卡死转圈问题
不知什么时候MacBookPro出现盒盖休眠后Wifi连不上,卡死,转圈问题 在网上搜索解决了下,具体什么原因先不用管了,有时间升级下系统 sudo killall airportd 应该是Mojav ...
- python操作字符串类型json的注意点
python操作json的方法有json.dumps——将json对象(字典)转换为字符串对象json.loads——将字符串对象转换为json对象(字典)如果定义json对象jsonstring1= ...
- day 06
深浅拷贝 # 值拷贝:应用场景最多ls = [1, 'abc', [10]]ls1 = ls # ls1直接将ls中存放的地址拿过来# ls内部的值发生任何变化,ls1都会随之变化ls2 = l ...
- archer docker安装部署
1.准备配置文件从archer项目官网下载/archer/settings.py文件,根据自己情况放到相应的目录我下载后放到如下目录[root@lenovo opt]# mkdir -p /opt/a ...
- 用Python绘制一个感兴趣是数学公式图
下面是函数sin,cos函数的图像: 代码如下: import numpy as np import pylab as pl import matplotlib.font_manager as fm ...
- allure --version 异常io.airlift.airline.ParseArgumentsUnexpectedException: Found unexpected parameter
执行allure --version时,有时会出现如下异常: io.airlift.airline.ParseArgumentsUnexpectedException: Found unexpecte ...
- VueJS第2天 初阅API(初识MarkDown)
指令是带有前缀 v-,以表示它们是 Vue 提供的特殊特性.可能你已经猜到了,它们会在渲染的 DOM 上应用特殊的响应式行为 v-bind --> 数据绑定 v-for --> 循环 v- ...
- Bigger-Mai 养成计划,subprocess模块
subprocess模块是python从2.4版本开始引入的模块.主要用来取代 一些旧的模块方法,如os.system.os.spawn*.os.popen*.commands.*等.subproce ...