当前位置: 首页 > news >正文

微网站制作方案十大营销模式

微网站制作方案,十大营销模式,网站建设厘金手指专业,苏州疫情最新数据消息需求:将软件处理的结果保存为一个报告文档,文档中包含表格、图片、文字,格式为word的.doc和.pdf。生成word是为了便于用户编辑。 开发环境:qt4.8.4vs2010 在qt的官网上对于pdf的操作介绍如下:http://qt-project.org/…

需求:将软件处理的结果保存为一个报告文档,文档中包含表格、图片、文字,格式为word的.doc和.pdf。生成word是为了便于用户编辑。

开发环境:qt4.8.4+vs2010

在qt的官网上对于pdf的操作介绍如下:http://qt-project.org/wiki/Handling_PDF 。即通过QPrinter类来创建pdf;还有通过第三方库PoDoFo、Hummus。本文主要介绍的是用QPrinter类来创建pdf。

在qt的官网上对于word的操作介绍如下:http://qt-project.org/wiki/Handling_Microsoft_Word_file_format 。即通过Word本身COM组件的形式,Qt的ActiveX框架来实现;还有通过xml来实现。本文主要介绍Qt ActiveX和html格式生成word文档。

下面举例详细说明pdf和word文档的生成:

1.pdf的生成

pdf文档里要求有表格、图片、文字,参考博客:http://blog.sina.com.cn/s/blog_a6fb6cc90101gvnx.html。里面有介绍文字、图片、表格分别是怎样通过QPrinter类来实现的。但是遇到一个麻烦就是怎样把这三种格式的东西放在一起而且排版好呢,用上述博客里的方法尝试之后,最终确定使用第三种生成表格(html格式)的方式来得到:
 

QPrinter printer_text;
printer_text.setOutputFormat(QPrinter::PdfFormat);
printer_text.setOutputFileName(pdfname);//pdfname为要保存的pdf文件名QTextDocument text_document;
QString html = GeneratePicWord();//自定义的函数,用来生成html代码text_document.setHtml(html);
text_document.print(&printer_text);
QTextBlock it = text_document.end();

GeneratePicWord()函数的内容大致如下:

QString html;
//文字部分
QDateTime current_date_time = QDateTime::currentDateTime();
QString current_date = current_date_time.toString("yyyy-MM-dd hh:mm:ss ddd");
html += "<h2 align=\"center\">育种管理模块</h2>";
html += "<h4 align=\"center\">" + current_date + "</h2><br>";
//图片部分
html += "<img align=\"middle\" src = \"" + imagepath + "\"  width=\"600\" height=\""+QString::number(showHeight) + "\"/><br>" ;
//表格部分
html +=  "<table align=\"center\" border=\"0.2\" cellspacing=\"0\" cellpadding=\"0\"  style=\"width: 100%; height: 100%;\">";
html +="<tr>";  
QString fieldname;
for ( int i = 0; i < fieldCount; ++i)
{
fieldname = fields[i].name();
html +="<td bgcolor=\"Silver\">" + fieldname + "</td>";
}
html +="</tr></table>";

 

2.word的生成

word的生成可以用QActiveX来实现。博客:http://www.360doc.com/content/14/0227/16/7918060_356177077.shtml里说的比较详细了。首先新建一个模板文件Id.dot,在模板文件中事先“插入”-》“书签”,如下图所示:

 

书签主要在表格的第一行前两列,分别是code,ndvi。表格下面有两个书签,分别是pic,pic2。用代码插入需要的文字和图片:

	QAxWidget *word = new QAxWidget("Word.Application",this, Qt::MSWindowsOwnDC);word->setProperty("Visible", true);//get all documentsQAxObject *documents = word->querySubObject("Documents");//build a tempetate with .dot filedocuments->dynamicCall("Add(QString)", QString::fromLocal8Bit("F:/Id.dot"));//get the current actived documentQAxObject *document = word->querySubObject("ActiveDocument");QString code = "code";QAxObject *bookmark_code = document->querySubObject("Bookmarks(QVariant)", "code");if ( !bookmark_code->isNull()){bookmark_code->dynamicCall("Select(void)");bookmark_code->querySubObject("Range")->setProperty("Text", "textg");}QAxObject *bookmark_ndvi = document->querySubObject("Bookmarks(QVariant)", "ndvi");if ( !bookmark_ndvi->isNull()){bookmark_ndvi->dynamicCall("Select(void)");bookmark_ndvi->querySubObject("Range")->setProperty("Text", "ndvi");}QAxObject *bookmark_ndvi2 = document->querySubObject("Bookmarks(QVariant)", "ndvi");if ( !bookmark_ndvi2->isNull()){bookmark_ndvi2->dynamicCall("Select(void)");bookmark_ndvi2->querySubObject("Range")->setProperty("Text", "ndvi2");}QAxObject *bookmark_pic = document->querySubObject("Bookmarks(QVariant)", "pic");if ( !bookmark_pic->isNull()){bookmark_pic->dynamicCall("Select(void)");QAxObject *shapes = document->querySubObject("InlineShapes");shapes->dynamicCall("AddPicture(Const QString&)", "F:\\CND.jpg");}document->dynamicCall("SaveAs (const QString&)", QString("F:/testword.doc"));document->dynamicCall("Close(boolean)", false);word->dynamicCall("Quit()");

只会插入到第一行已经预设好书签的位置。对于有多条数据,还不知道怎样动 态创建 书签来插入数据。在网上找了些资料,未能很好的通过模板书签的方式来解决这两个问题。
那么想通过上面生成pdf时的html能不能直接保存为.doc文件呢?答案是能!而且节约了很多时间,只需一次生成固定格式的html,就可以保存为pdf和doc文件,多好的事情啊,为什么要用Qt ActiveX呢。

当然不能直接把生成pdf的文件名改成doc就行了,还需要做下面一个事情:
 

QString html;
html += "<html xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:w=\"urn:schemas-microsoft-com:office:word\" xmlns=\"http://www.w3.org/TR/REC-html40\"><head><meta http-equiv=Content-Type  content=\"text/html; charset=gb2312\" >"; //这句可加可不加。主要是因为我在word里把doc另存为html文件后,看到有这么个头标签,由此想到直接将html文档保存为doc文件。
html =GeneratePicWord();//该函数同生产pdf文档的一样QFile outFile(docname);
outFile.open(QIODevice::WriteOnly | QIODevice::Append );
QTextStream ts(&outFile);
ts<<html<<endl;

主要在后面那4行,将html输出到doc文件中去。

得到的结果如图:

 

http://www.zhongyajixie.com/news/55749.html

相关文章:

  • 如何做网站源码网上接单平台
  • 做衬衫的作业网站手机推广软文
  • win7用本地文件做网站模板产品营销方案
  • 58同城济南网站建设安卓在线视频嗅探app
  • 怎么采集网站内容手机百度一下
  • 建设网站时的故障分类宁波seo关键词如何优化
  • 做数学题目在哪个网站好小网站关键词搜什么
  • 电子商务网站建设的步骤一般为(绍兴seo排名公司
  • 小企业做网站有用吗博客推广工具
  • 哪个公司需要做网站友情链接网站
  • 浙江舟山建设厅网站免费的网站平台
  • 微网站制作工具域名注册网站哪个好
  • dede网站模板安装搜狗站长平台
  • 中国e网网站建设天天网站
  • 网站建设个人网站常用的seo工具推荐
  • 如何在微信公众平台上建立微网站百度的链接
  • wordpress b站视频北京计算机培训机构前十名
  • 小游戏网站网址上海seo公司哪个靠谱
  • led灯 东莞网站建设2345网址导航官网下载
  • 重庆那家做网站做得好百度seo效果
  • 营销型网站建设 案例广告平台网站有哪些
  • 给别人做网站没做完算诈骗吗网站流量统计
  • 更换网站需要备案吗广州seo优化公司排名
  • 无限免费视频在线看网站搜索排名优化价格
  • 现在一般做B2B类网站用vue青岛做网站的公司哪家好
  • 深圳西乡做网站nba最新新闻新浪
  • 有哪些好的网站建设搜索引擎优化方案案例
  • 请别人做网站的缺点网络视频营销
  • 网站怎么做文件上传如何做推广推广技巧
  • 深圳餐饮公司网站制作腾讯企点官网下载