QString temp="";
//m_File_Content_Text_Edit->selectAll();
QString t_File_Content = m_File_Content_Text_Edit->toPlainText(); // pdf文件生成
QPrinter printer;
printer.setOutputFormat(QPrinter::PdfFormat);
printer.setOutputFileName(filename);
QPainter painter;
if (! painter.begin(&printer))
{ // failed to open file
QMessageBox::information(NULL, "提示", "PDF打开出错", QMessageBox::Yes, QMessageBox::Yes);
return ;
}
int index = ;
int x=;
const int pageLine = ;//PDF一页行数 //我的PDF中做了表格,t_File_Content前五行是表头内容
painter.setFont(QFont("Arial", ));
//painter.setPen(Qt::blue);
painter.drawText(,,"组件接口检测报告");
painter.setFont(QFont("Arial", ));
//painter.drawText(rect(), Qt::AlignCenter, "Qt");
//QRectF biaoge(QPoint(100, 20), QSize(100, 100));
//painter.drawRect(biaoge); //biaoge.setX();
int biaotou_Count = ;
int y=,size; for(index = ;'\0' != t_File_Content[index];index++)
{ if('\n' == t_File_Content[index])
{
if((y+)>= && temp != "")
{
if (! printer.newPage())
{ // failed to open file
QMessageBox::information(NULL, "提示", "PDF新建页数出错", QMessageBox::Yes, QMessageBox::Yes);
return ;
}
y = ;
}
if("" == temp)
{
temp == "";
continue;
} if(biaotou_Count < )//当前是表头数据
{
if( == biaotou_Count)
{
painter.setPen(Qt::blue);
painter.drawRect(QRectF(,,,));
painter.setPen(Qt::black);
painter.drawText(QRectF(,,,), Qt::AlignCenter, tr("检测组件"));
painter.setPen(Qt::blue);
painter.drawRect(QRectF(,,,));
painter.setPen(Qt::black);
painter.drawText(QRectF(,,,), Qt::AlignCenter, tr(temp.toStdString().c_str()));
}
else if( == biaotou_Count)
{
painter.setPen(Qt::blue);
painter.drawRect(QRectF(,,,));
painter.setPen(Qt::black);
painter.drawText(QRectF(,,,), Qt::AlignCenter, tr("检测日期"));
painter.setPen(Qt::blue);
painter.drawRect(QRectF(,,,));
painter.setPen(Qt::black);
painter.drawText(QRectF(,,,), Qt::AlignCenter, tr(temp.toStdString().c_str()));
}
else if( == biaotou_Count)
{
painter.setPen(Qt::blue);
painter.drawRect(QRectF(,,,));
painter.setPen(Qt::black);
painter.drawText(QRectF(,,,), Qt::AlignCenter, tr("版本号"));
painter.setPen(Qt::blue);
painter.drawRect(QRectF(,,,));
painter.setPen(Qt::black);
painter.drawText(QRectF(,,,), Qt::AlignCenter, tr(temp.toStdString().c_str()));
}
else if( == biaotou_Count)
{
painter.setPen(Qt::blue);
painter.drawRect(QRectF(,,,));
painter.setPen(Qt::black);
painter.drawText(QRectF(,,,), Qt::AlignCenter, tr("检测者"));
painter.setPen(Qt::blue);
painter.drawRect(QRectF(,,,));
painter.setPen(Qt::black);
painter.drawText(QRectF(,,,), Qt::AlignCenter, tr(temp.toStdString().c_str()));
}
else
{
painter.setPen(Qt::blue);
painter.drawRect(QRectF(,,,));
painter.setPen(Qt::black);
painter.drawText(QRectF(,,,), Qt::AlignCenter, tr("组件描述"));
painter.setPen(Qt::blue);
painter.drawRect(QRectF(,,,));
painter.setPen(Qt::black);
painter.drawText(QRectF(,,,), Qt::AlignCenter, tr(temp.toStdString().c_str()));
painter.setPen(Qt::blue);
painter.drawRect(QRectF(,,,));
painter.setPen(Qt::black);
painter.drawText(QRectF(,,,), Qt::AlignCenter, tr("检测结果"));
y=;
x=;
}
temp = "";
biaotou_Count++;
continue;
} //painter.drawText(0,25*x,temp);//行间距,25个像素
//x++;
size = temp.size();
if(temp[size-] == '.')
{
painter.setPen(Qt::blue);
painter.drawRect(QRectF(,y,,));
painter.setPen(Qt::black);
if(isError(temp))
painter.setPen(Qt::red); painter.drawText(QRectF(,y,,), Qt::AlignCenter, tr(temp.toStdString().c_str()));
//painter.setPen(Qt::blue);
y+=; temp = "";
continue;
}
else
{
temp +='\n';
}
}
else
{
temp += t_File_Content[index];
} } painter.end();

QT生成PDF文件的更多相关文章

  1. linux下编译bib、tex生成pdf文件

    实验: 在linux环境下,编译(英文)*.bib和*.tex文件,生成pdf文件. 环境: fedora 20(uname -a : Linux localhost.localdomain 3.19 ...

  2. ThinkPHP3.2.3扩展之生成PDF文件(MPDF)

    目前是PHP生成PDF文件最好的插件了,今天介绍下在ThinkPHP3.2.3里如何使用. 先安照路径放好如图. 下面是使用方法 public function pdf(){ //引入类库 Vendo ...

  3. [轉載]史上最强php生成pdf文件,html转pdf文件方法

    之前有个客户需要把一些html页面生成pdf文件,然后我就找一些用php把html页面围成pdf文件的类.方法是可谓是找了很多很多,什么html2pdf,pdflib,FPDF这些都试过了,但是都没有 ...

  4. asp.net生成PDF文件 (1)

    asp.net生成PDF文件 (1) 这个是例子是网上淘来的,哈哈,很有用的! 首先要到网上下载itextsharp.dll,然后添加引用,主程序如下: 1 2 3 4 5 6 7 8 9 10 11 ...

  5. 怎么用PHP在HTML中生成PDF文件

    原文:Generate PDF from html using PHP 译文:使用PHP在html中生成PDF 译者:dwqs 利用PHP编码生成PDF文件是一个非常耗时的工作.在早期,开发者使用PH ...

  6. JAVA生成PDF文件

    生成PDF文件是主要应用的是ITEXT插件 import java.awt.Color; import java.io.File; import java.io.FileOutputStream; i ...

  7. .NET生成PDF文件

    C#未借助第三方组件,自己封装通用类,生成PDF文件. 调用方式: //路径 string path = @"C:\yuannwu22.pdf"; //内容 string strC ...

  8. 史上最强php生成pdf文件,html转pdf文件方法

    body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...

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

    最近项目需要导出企业风险报告,文件格式为pdf,于是搜了一大批文章都是什么Jasper Report,iText ,flying sauser ,都尝试了一遍,感觉不是我想要的效果, 需要自己调整好多 ...

随机推荐

  1. Zabbix通过SNMP监控多核CPU使用率时, 计算CPU平均使用率

    环境:没有Agent,只能通过SNMP监控时,需要获取多核CPU的平均使用率. ZABBIX的使用SNMP监控CPU使用率时,由于设备都是多核CPU,监控的都是单独某一核心的使用率,但单独某一核使用率 ...

  2. ActiveMQ 入门helloworld

    1.下载安装ActiveMQ 官网下载地址:http://activemq.apache.org/download.html ActiveMQ 提供了Windows 和Linux.Unix 等几个版本 ...

  3. 6656 Watching the Kangaroo

    6656 Watching the KangarooDay by day number of Kangaroos is decreasing just liketiger, whale or lion ...

  4. 闲聊DOS命令

    使用DOS命令进入指定文件夹打开文本文件: 回车确定 先进入F盘: 回车后输入:  F: 然后回车就进入了F盘,如下图: 然后比如我们要打开 F:\电脑桌面文件\hosts文件.txt文件,打开步骤如 ...

  5. 基于java的后台截图功能的实现

    Java后台截图功能的实现 背景介绍: 在近期开发的可视化二期项目中的邮件项目中,邮件中的正文中含有图片.该图片的产生是将一些html网页转为图片格式,刚开始考虑使用第三方组件库html2image和 ...

  6. Entity Framework 之Code First自动数据迁移

    using MvcShopping.Migrations; using MvcShopping.Models; using System; using System.Collections.Gener ...

  7. 如何在Windows系统中配置Mysql群集(Mysql Cluster)

    MySQL群集技术在分布式系统中为MySQL数据提供了冗余特性,增强了安全性,使得单个MySQL服务器故障不会对系统产生巨大的负面效应,系统的稳定性得到保障. Mysql群集(Cluster)简介 M ...

  8. JAVA提高四:反射基本应用

    在前面一节<http://www.cnblogs.com/pony1223/p/7659210.html>,我们学习了JAVA的反射的相关知识,那么本节我们对前面所学习的知识做一个应用相关 ...

  9. 第八章 关于SQL查询出错的一些问题

    问题一:在使用MySQL使用传参查询并返回结果集时,没错,小伙伴们都知道少不了Statement接口和PreparedStatement对象.问题来了,有时竟然查询不了,Debug进去,发现执行的SQ ...

  10. .net Mvc框架原理

    .net Mvc框架原理 本文只是简要说明原理,学习后的总结. 1.当一个Http请求发送后会被URLRoutingModule拦截(这时候也就是正式进入管道,下章会讲管道事件) 2.这时根据Isap ...