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. JVM菜鸟进阶高手之路六(JVM每隔一小时执行一次Full GC)

    转载请注明原创出处,谢谢! 上次分析详细地址在:http://www.jianshu.com/p/a6236cd39e2d 以为上次问题是rmi的问题就此结束了,但是问题并没有结束,其实本次问题不是r ...

  2. Excel开发之旅

    开发环境:Microsoft Visual Studio 2015,Office 2013 开发语言:C# 1.创建工程:文件à新建à项目,选择office 外接程序àExcel 2013和2016 ...

  3. 线段树初步__ZERO__.

    线段树,顾名思义,就是指一个个线段组成的树. 线段树的定义就是: 线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点.使用线段树可以快速的查找某 ...

  4. ioc(Inversion of Control)控制反转和DI

    ioc意味着将你设计好的交给容器控制,而不是传统在你的对象中直接控制 谁控制了谁:传统的javaSE程序设计,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象:而ioc是有专门一个容 ...

  5. Spring+SpringMVC+MyBatis整合进阶篇(四)RESTful实战(前端代码修改)

    前言 前文<RESTful API实战笔记(接口设计及Java后端实现)>中介绍了RESTful中后端开发的实现,主要是接口地址修改和返回数据的格式及规范的修改,本文则简单介绍一下,RES ...

  6. TomCat系统架构

    1.TomCat总体结构 TomCat有两大核心组件:Connector和Container.Connector组件是可以被替换的,一个Container可以对应多个Connector. 多个Conn ...

  7. SUM游戏

    题意:就是有一个长度为n的整数序列,两个游戏者A和B轮流取数,A先取.每次玩家只能从左端或者右端取任意数量个数,但不能两端都取. 所有数都被取走后游戏结束,然后统计每个人取走的所有数之和,作为各自的得 ...

  8. Spring Boot Starter 介绍

    http://www.baeldung.com/spring-boot-starters 作者:baeldung 译者:http://oopsguy.com 1.概述 依赖管理是任何复杂项目的关键部分 ...

  9. JavaScript实现常见算法面试题

    算法题目部分参照了<进军硅谷>这本书. github:https://github.com/qcer/Algo-Practice (如果你觉得有帮助,记得给个star,THS) 一.排序 ...

  10. 由String的构造方法引申出来的java字符编码

    在String类的constructors中,有一个constructor是将int数组类型转化为字符串: int[] num = {48,49,50,51,52}; String numStr = ...