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. Failed to load the JNI shared library "XXXXXXX"

    今天启动Eclipse的时候出现了这个问题,经过查找, 一般来说这种问题都是因为eclipse 和Java 的兼容性不一致所导致的. 1) 查看Eclipse 和Java 版本 那么我们需要分别查看下 ...

  2. 由throw new Error() 引发的探讨

    问题复现 在工作时遇到了需要抛出异常并且需要自己捕获处理的地方,于是在抛出的地方写下 function parseExcel(con) { try { // doSomething } catch ( ...

  3. PyTorch教程之Neural Networks

    我们可以通过torch.nn package构建神经网络. 现在我们已经了解了autograd,nn基于autograd来定义模型并对他们有所区分. 一个 nn.Module模块由如下部分构成:若干层 ...

  4. 【重点突破】——two.js模拟绘制太阳月亮地球转动

    一.引言 自学two.js第三方绘图工具库,认识到这是一个非常强大的类似转换器的工具,提供一套固定的接口,可用在各种技术下,包括:Canvas.Svg.WebGL,极大的简化了应用的开发.这里,我使用 ...

  5. apache、php隐藏http头部版本信息的实现方法

    1.apache隐藏头部版本信息,编辑httpd.conf文件,找到: ServerTokens OS ServerSignature On 修改为: ServerTokens ProductOnly ...

  6. Java爬虫

    作为一位Java爬虫的初学者,分享一下自己的心得.所用到的jar包 org.codehaus.jettison.jar jsoup-1.7.3.jar个人认为爬虫的实现机制:获取Docume对象-&g ...

  7. 微服务架构中API网关的角色

    [上海尚学堂的话]:本文主要讲述了Mashape的首席技术执行官Palladino对API网关的详细介绍,以及API网关在微服务中所起的作用,同时介绍了Mashape的一款开源API网关Kong. A ...

  8. Javascript之pixi框架学习

    pixi 创建渲染器(renderer) 创建一个可以播放动画的区域,相当于(canvas). var renderer = PIXI.autoDetectRenderer(512, 512); do ...

  9. 张高兴的 Windows 10 IoT 开发笔记:HC-SR04 超声波测距模块

    HC-SR04 采用 IO 触发测距.下面介绍一下其在 Windows 10 IoT Core 环境下的用法. 项目运行在 Raspberry Pi 2/3 上,使用 C# 进行编码. 1. 准备 H ...

  10. ubuntu下MySQL修改root密码的多种方法,phpmyadmin空密码无法登陆的解决方法

    phpmyadmin是默认不允许使用空密码的,所以若是在安装时没有设置密码,在登陆phpmyadmin时是个很头疼的问题 方法1是修改phpmyadmin的配置文件,这里不做推荐.. 方法2: php ...