首页产品库评测行情新闻|手机数码笔记本台式机DIY硬件数字家庭数码相机办公外设|软件下载游戏开发|社区

更多

数码相机
MP4
LCD
机箱
音箱

软件资讯设计 工具 系统 开发 安全 办公 陶吧 IT教育 Windows 7 | 下载中心天极下载中心诚征下载通路合作伙伴
天极网 > 软件频道 > 网页陶吧>ASP.Net实现将Word转换PDF格式

ASP.Net实现将Word转换PDF格式

2006-12-27 08:54作者:不详出处:天极网责任编辑:龙犊

  改写原来的button1_Click事件中的代码

以下是引用片段:
  private void button1_Click(object sender, System.EventArgs e)
  {
  ToPdf my2Pdf = new ToPdf("test.doc","c:\\");
  ThreadStart thStartConvert = new ThreadStart(my2Pdf.StartConvertPDF); //开始异步调用线程
  thStartConvert.BeginInvoke(new AsyncCallback(my2Pdf.EndConvertPDF),null);//设置异步线程的回调函数
  //如果需要转换多个WORD,你可以用循环
  //如果是B/S系统,可以将本段代码放在ASPX中,并结合客户端的无刷新显示数据的技术,不断访问WEBService程序,以确定PDF是否转换成功或失败
  }

  六:编写更加健壮的C#调用代码(实际考虑,可放在WINDOWS的服务程序中)

  实际使用时,由于转化PDF时CPU的占用率很高,考虑只在同一时间转换一篇WORD文档,放弃异步线程的回调函数的使用,考虑一个WINDOWS的服务程序。

  写一个函数CheckData2Convert(),不断的检查没有转换的WORD文档,并使用循环调用ToPdf类中执行转换方法StartConvertPDF

  //以下给出,泛代码,用户按照自己的需求,填写完整即可

  //bool bStart为全局变量,控制循环的进入与退出

  //例:18:30开始检查并转换,那么18:30时,bStart=true;并启动转换线程

  //6:30停止转换线程,bStart=fasle;

以下是引用片段:
  private void CheckData2Convert()
  {
  //检查指定目录下的没有转换的WORD文档,你同样可以检查数据库中记录的没有转换的WORD文档
  string sPath = System.Threading.Thread.GetDomain().BaseDirectory; //当前的路径
  while(bStart)
  {
  int iFileCount = CheckWord(); //CheckWord为一个方法,检查当前没有转换的WORD文档,返回没有转换的文件数,该方法的代码由读者自己编写
  for(int i=0;i 
  {
  string sWord = GetWordFileName(i) //GetWordFileName为一个方法,返回一个不带路径的WORD文件名,该方法的代码由读者自己编写
  //ToPdf类中的StartConvertPDF()方法使用的是不带路径的WORD文件名
  ToPdf my2Pdf = new ToPdf(sWord ,sPath);
  my2Pdf.StartConvertPDF();
  if(my2Pdf.sExecResult.IndexOf("isuccess")!=-1)
  {
  //成功,写日志,或回写数据库
  }
  else if(my2Pdf.sExecResult.IndexOf("isfail")!=-1)
  {
  //失败,写日志,或回写数据库
  }
  }
  if(!bStart)break;
  Thread.Sleep(1000);
  }
  }
  然后在服务的开始事件中,启动线程
  protected override void OnStart(string[] args)
  {
  //可以使用一个开始定时器,检查是否到开始时间,时间一到,就开始执行线程,此处的开始执行线程可以放在开始定时事件中
  //可以使用一个结束定时器,检查是否到结束时间,时间一到,就结束线程,结束线程的代码可以放在结束定时事件中
  //注意:应该使用组件中的定时器,而不是Windows的FORMS中的定时器
  //该定时器的类名为System.Timers.Timer,千万别搞错,不然执行不会正常的
  bStart = true;
  Thread thConvert = new Thread(new ThreadStart(StartConvertData));
  thConvert.Start();
  }
  然后在服务的结束事件中,设置停止线程的标识bStart= false
  protected override void OnStop()
  {
  bStart = false;
  //为何次处不停止线程呢,因为考虑到,现在线程正在转换WORD文档,但没有结束,所以只设置停止标识,转换完成后,线程也执行结束了.
  }

  结束语:

本文相关文章阅读    欢迎投稿
推荐:网页陶吧 | 网页制作速查手册

  Adobe Acrobat 7.0 Professional,postscript.exe,gs811w32.exe这三个文件可以在itbaby.jss.cn下载,都包含在同一个RAR的压缩文件中了。

  itbaby.jss.cn是动态域名,主机在作者家里,如果网站不能访问,说明电脑没有开,请稍后几天再试。


  阅读关于 ASP.Net Word PDF 网页陶吧 龙犊 的全部文章
  阅读关于 ASP.Net Word PDF 网页陶吧 龙犊 的全部文章 热卖推荐: 手机 诺基亚 MP5 电脑包 双卡双待 手机链 U盘 笔记本电脑

关注此文的读者还看过:

返回网页陶吧首页

共5页。 上一页12345

软件频道最新更新

热点推荐

IT嘉年华

编辑推荐

软件下载

热门
推荐

网友关注

软件
资料
游戏

装机推荐

文章排行

本周
本月
最新更新
天极服务|关于我们|About us|网站律师|RSS订阅|友情合作|加入我们|天极动态|网站地图|意见反馈|MSN/QQ上看天极
Copyright (C) 1999-2012 Yesky.com, All Rights Reserved 版权所有 天极网络