QT生成PDF文件
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文件的更多相关文章
- linux下编译bib、tex生成pdf文件
实验: 在linux环境下,编译(英文)*.bib和*.tex文件,生成pdf文件. 环境: fedora 20(uname -a : Linux localhost.localdomain 3.19 ...
- ThinkPHP3.2.3扩展之生成PDF文件(MPDF)
目前是PHP生成PDF文件最好的插件了,今天介绍下在ThinkPHP3.2.3里如何使用. 先安照路径放好如图. 下面是使用方法 public function pdf(){ //引入类库 Vendo ...
- [轉載]史上最强php生成pdf文件,html转pdf文件方法
之前有个客户需要把一些html页面生成pdf文件,然后我就找一些用php把html页面围成pdf文件的类.方法是可谓是找了很多很多,什么html2pdf,pdflib,FPDF这些都试过了,但是都没有 ...
- asp.net生成PDF文件 (1)
asp.net生成PDF文件 (1) 这个是例子是网上淘来的,哈哈,很有用的! 首先要到网上下载itextsharp.dll,然后添加引用,主程序如下: 1 2 3 4 5 6 7 8 9 10 11 ...
- 怎么用PHP在HTML中生成PDF文件
原文:Generate PDF from html using PHP 译文:使用PHP在html中生成PDF 译者:dwqs 利用PHP编码生成PDF文件是一个非常耗时的工作.在早期,开发者使用PH ...
- JAVA生成PDF文件
生成PDF文件是主要应用的是ITEXT插件 import java.awt.Color; import java.io.File; import java.io.FileOutputStream; i ...
- .NET生成PDF文件
C#未借助第三方组件,自己封装通用类,生成PDF文件. 调用方式: //路径 string path = @"C:\yuannwu22.pdf"; //内容 string strC ...
- 史上最强php生成pdf文件,html转pdf文件方法
body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...
- java调用wkhtmltopdf生成pdf文件,美观,省事
最近项目需要导出企业风险报告,文件格式为pdf,于是搜了一大批文章都是什么Jasper Report,iText ,flying sauser ,都尝试了一遍,感觉不是我想要的效果, 需要自己调整好多 ...
随机推荐
- Failed to load the JNI shared library "XXXXXXX"
今天启动Eclipse的时候出现了这个问题,经过查找, 一般来说这种问题都是因为eclipse 和Java 的兼容性不一致所导致的. 1) 查看Eclipse 和Java 版本 那么我们需要分别查看下 ...
- 由throw new Error() 引发的探讨
问题复现 在工作时遇到了需要抛出异常并且需要自己捕获处理的地方,于是在抛出的地方写下 function parseExcel(con) { try { // doSomething } catch ( ...
- PyTorch教程之Neural Networks
我们可以通过torch.nn package构建神经网络. 现在我们已经了解了autograd,nn基于autograd来定义模型并对他们有所区分. 一个 nn.Module模块由如下部分构成:若干层 ...
- 【重点突破】——two.js模拟绘制太阳月亮地球转动
一.引言 自学two.js第三方绘图工具库,认识到这是一个非常强大的类似转换器的工具,提供一套固定的接口,可用在各种技术下,包括:Canvas.Svg.WebGL,极大的简化了应用的开发.这里,我使用 ...
- apache、php隐藏http头部版本信息的实现方法
1.apache隐藏头部版本信息,编辑httpd.conf文件,找到: ServerTokens OS ServerSignature On 修改为: ServerTokens ProductOnly ...
- Java爬虫
作为一位Java爬虫的初学者,分享一下自己的心得.所用到的jar包 org.codehaus.jettison.jar jsoup-1.7.3.jar个人认为爬虫的实现机制:获取Docume对象-&g ...
- 微服务架构中API网关的角色
[上海尚学堂的话]:本文主要讲述了Mashape的首席技术执行官Palladino对API网关的详细介绍,以及API网关在微服务中所起的作用,同时介绍了Mashape的一款开源API网关Kong. A ...
- Javascript之pixi框架学习
pixi 创建渲染器(renderer) 创建一个可以播放动画的区域,相当于(canvas). var renderer = PIXI.autoDetectRenderer(512, 512); do ...
- 张高兴的 Windows 10 IoT 开发笔记:HC-SR04 超声波测距模块
HC-SR04 采用 IO 触发测距.下面介绍一下其在 Windows 10 IoT Core 环境下的用法. 项目运行在 Raspberry Pi 2/3 上,使用 C# 进行编码. 1. 准备 H ...
- ubuntu下MySQL修改root密码的多种方法,phpmyadmin空密码无法登陆的解决方法
phpmyadmin是默认不允许使用空密码的,所以若是在安装时没有设置密码,在登陆phpmyadmin时是个很头疼的问题 方法1是修改phpmyadmin的配置文件,这里不做推荐.. 方法2: php ...