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 ,都尝试了一遍,感觉不是我想要的效果, 需要自己调整好多 ...
随机推荐
- merge 语法解析
merge into 支持sqlserver 2008 和以上的版本 无论是INSERT还是UPDATE,从执行之间上看,MERGE INTO(MERGE)都要比直接INSERT/UPDATE的效率高 ...
- js学习要点
js 一.词法结构 1.区分大小写 2.注意 // 单行 /* 多行注释 */ 3.字面量(直接量 literal) 12 //数字 5.8 // 小数 "hello" 'hell ...
- datepickerpopup时间限制选取
使用popup组件的过程中遇到时间选取的问题 官方文档大致说使用date和mode 可以解决,奈何老夫是看不懂,写的时候参考的有 官方文档.echo2016的博文.liumang361的博文 先看图 ...
- PHP buffer的机制
PHP的buffer是这样的: 输出的字符串 => PHP buffer => 等待输出 => web 服务器的缓冲区 => tcp 缓冲区 => 客户端.过程其实相当的 ...
- Kindle 推送教程:教你用电子邮箱推送电子书
Kindle 推送是什么意思?如何通过电子邮件附件推送?或许刚刚接触 Kindle 的朋友对这个概念不是很清楚,其实所谓 Kindle 推送是指亚马逊提供的一个"Kindle 个人文档服务& ...
- "svn: E155010: 提交失败"问题解决
习惯于通过命令行操作svn,今天如往常一样提交代码: AnnytekiMacBook-Air:weiyibao Anny$ svn ci -m "code" 居然报错,如下: sv ...
- 冒泡排序(Bubble Sort)
冒泡排序的基本思路 冒泡排序是一种效率极低的排序,首先它需要知道数组的有效数据长度,再对数据第一个和第二个两两比较,按照比较规则进行交换,然后第二个数据和第三个数据进行比较,按照比较规则进行交换:第一 ...
- vscode 调试.net core 2.0 输出乱码解决方法
之前在vscode上调试.net core 2.0项目时输出窗口一直是乱码,查了很多资料无法解决 最终在github找到了解决办法 -> https://github.com/OmniSha ...
- ZOJ2212 Argus 优先队列 结构体
#include <iostream> #include <string> #include <queue> using namespace std; struct ...
- jS判断浏览器终端
在做移动端项目的时候,常常会遇到需要判断页面浏览终端的需求.要想判断是什么浏览器终端,先打印 navigator.userAgent 出来.所以收集了几种比较常用的方法: if(/(iPhone|iP ...