wps打印预览(wps打印预览正常 打印出来不完整)

# # 1.介绍数据可以打印到pdf文件,当然也可以打印到纸张,使用qprinter时默认打印到纸张。上一篇文章写的函数是打印到pdf,其实是要打印到一个有特殊

# # 1.介绍

数据可以打印到pdf文件,当然也可以打印到纸张,使用qprinter时默认打印到纸张。上一篇文章写的函数是打印到pdf,其实是要打印到一个有特殊设置的文件,指定的格式是pdf。如果不指定输出文件和格式,默认情况下会将其打印到纸上。Qt有很多在线方式将内容打印到纸上。比如有的是画师直接画出来的,一步一步控制页面打印。我个人比较喜欢html格式的内容,因为html格式相当灵活,可控范围大,比较工整。你甚至可以先直接输出到网页预览,根据自己的需求进行调整。后面的图文混排是通过html+表格实现的。如果不需要边框,可以设置边框粗细。

数据打印的基本步骤:

1.准备要打印的数据。

2.实例化QPrinter对象。

3.设置输出格式setOutputFormat(q printer::Native Format)。

4.弹出打印预览对话框QPrintPreviewDialog。

5.在slot函数中画出相关信号槽的内容。

6.实例化文档对象QTextDocument。

7.将内容设置为文档对象的html。

8.调用document对象的print方法,并将其传递给QPrinter对象进行打印。

结构支持的参数:

-文件名

-表名

-主标题

-字幕

-字段名集合

-字段宽度集合

-内容收集

-行内容分隔符

-子内容分隔符

-边框宽度

-检查列

-检查类型

-检查值

-检查颜色

-最后一列被拉伸和填充。

-水平排版

-纸张边距

# #二。功能特征

1.该组件集成导出数据到csv,xls,pdf和打印数据在同一时间。

2.所有的操作都提供了静态方法,所以设置new、data、attributes等各种参数都非常方便,不需要使用结构化数据。

3.同时支持QTableView、QTableWidget、QStandardItemModel、QSqlTableModel等数据源。

4.提供静态方法直接传入QTableView和QTableWidget控件,自动识别列名、列宽和数据内容。

5.每组函数都提供了单独完整的例子,并附有详细的注释,非常适合各个阶段的Qter程序员。

6.独创数据导出机制,不依赖任何office组件或操作系统等第三方库,支持嵌入式linux。

7.超快,9场10万行数据只需要2秒就能完成。

8.开始将100W记录等海量数据导出到Excel只需要四个步骤。

9.同时提供直接写数据接口和多线程写数据接口,不阻塞主接口。

10.您可以设置标题、副标题和表格名称。

1.可以设置导出数据的字段名、列名和列宽。

12.可以设置结束列自动拉伸填充,默认拉伸更美观。

13.您可以设置是否启用数据检查和过滤,符合规则的数据在启用后会以特殊颜色显示。

14.可以指定校验值的列、校验规则、校验值和数据类型。

15.验证规则支持精确等于= =且大于>;,大于或等于>:=,小于<,小于或等于< =,不等于!=,包含。

16.校验值数据类型支持整数int、浮点float和双精度以及默认的文本字符串类型。

17.您可以设置随机背景色和需要随机背景色的列集。

18.支持分组输出数据,如按设备分组输出数据,方便查看。

19.可以设置csv分隔符、行内容分隔符和子内容分隔符。

20.您可以设置边框宽度和自动填充数据类型,默认情况下自动数据类型是打开的。

21.可以设置是否打开数据单元格样式,默认情况下不打开,这样可以节省大约30%的文件体积。

22.您可以设置水平布局、纸张边距等。,例如导出为pdf和打印数据。

23.支持图文混排导出数据到pdf,打印数据,自动分页。

24.超级灵活,可自由更改源设置的对齐方式、文本颜色、背景颜色等。

25.支持任何excel电子表格软件,包括但不限于excel2003-2021、wps、openoffice等。

26.纯Qt编写,支持任何Qt版本+任何编译器+任何系统。

# #三。体验地址

1.体验地址:【https://pan.baidu.com/s/1ZXG-OYuke286LPMPXORO2A】(https://pan.baidu.com/s/1ZXG-OYuke286LPMPXORO2A)提取代码:o05q文件名:bin _ data

2.国内站点:[https://gitee.com/Feiyangqingyun](https://gitee.com/Feiyangqingyun)

3.国际站点:[https://github.com/Feiyangqingyun](https://github.com/Feiyangqingyun)

4.个人主页:【https://blog.csdn.net/Feiyangqingyun】(https://blog.csdn.net/Feiyangqingyun)

5.知乎主页:[https://www.zhihu.com/people/Feiyangyingyun/](https://www.zhihu.com/people/Feiyangyingyun/)

# #四。翻译

Qt数据库应用4-数据打印到纸张

Qt数据库应用4-数据打印到纸张

# #五、相关代码

void frmDataOut3::on_btnXls_clicked(){ time.restart(); DataContent dataContent = getDataContent(AppConfig::CountXls); dataContent.fileName = QUIHelper::appPath() + "/db/dataout3.xls"; dataContent.sheetName = "短信信息"; DataXls::saveXls(dataContent); setInfo(1, qMin(rowCount, AppConfig::CountXls)); QUIHelper::openFile(dataContent.fileName, "导出短信信息");}void frmDataOut3::on_btnPdf_clicked(){ time.restart(); DataContent dataContent = getDataContent(AppConfig::CountPdf); dataContent.fileName = QUIHelper::appPath() + "/db/dataout3.pdf"; DataPrint::savePdf(dataContent); setInfo(1, qMin(rowCount, AppConfig::CountPdf)); QUIHelper::openFile(dataContent.fileName, "导出短信信息");}void frmDataOut3::on_btnPrint_clicked(){ DataContent dataContent = getDataContent(AppConfig::CountPrint); DataPrint::print(dataContent);}DataContent frmDataOut3::getDataContent(int maxCount){ DataContent dataContent; dataContent.title = "所有短信记录"; dataContent.subTitle = QString("%1 导出短信记录").arg(DATETIME); QList<QString> columnNames; columnNames << "序号" << "重量" << "温度" << "压力" << "类型" << "接收时间" << "短信内容"; QList<int> columnWidths; columnWidths << 70 << 70 << 70 << 70 << 140 << 180 << 380; dataContent.columnNames = columnNames; dataContent.columnWidths = columnWidths; QStringList content, subTitle1, subTitle2; getContent(maxCount, content, subTitle1, subTitle2); dataContent.content = content; dataContent.subTitle1 = subTitle1; dataContent.subTitle2 = subTitle2; //边框粗细 dataContent.borderWidth = 1; //导出到xls有样式比如边框需要开启 cellStyle = true //dataContent.cellStyle = true; dataContent.randomColor = ui->ckRandomColor->isChecked(); //下面表示第4列 (对应表中的 类型 字段) 值 包含 重量 关键字 则突出显示 dataContent.checkColumn = ui->ckCheckColumn->isChecked() ? 4 : -1; dataContent.checkType = "contains"; dataContent.checkValue = "重量"; dataContent.stretchLast = ui->ckStretchLast->isChecked(); dataContent.landscape = true; return dataContent;}

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

作者:美站资讯,如若转载,请注明出处:https://www.meizw.com/n/122350.html

发表回复

登录后才能评论