Aspose.Words如何通过Words里域(Fields)来控制内容

转帖|其它|编辑:郝浩|2011-07-14 14:49:06.000|阅读 4741 次

概述:Aspose.Words是一个极其强大的Word操作组件,包括.Net和Java两个版本,这里介绍的是.Net版本。 Aspose.Words的详细介绍在其官方网站上有介绍,但比较少有对Word模板的描述。可以在官方网站上下载例子程序,其中包含了不少Word模板。

  Aspose.Words是一个极其强大的Word操作组件,包括.Net和Java两个版本,这里介绍的是.Net版本。

  Aspose.Words的详细介绍在其官方网站上有介绍,但比较少有对Word模板的描述。可以在官方网站上下载例子程序,其中包含了不少Word模板。

  Aspose.Words 主要通过Words里域(Fields)来控制内容,基本方式就是新建一个新Word文件,在菜单中选择插入->域,选择MergeField,属 性->域名中输入和数据库表字段相同的名称,然后确定就OK了。多添加几个MergeField就可以输入多个字段。接着是.net中的代码,该代码使用模板为基础,循环数据库表的内容,每条记录在Word中显示为一页。

  1. private void Page_Load(object sender, EventArgs e)
  2. {
  3. DataSet users = appService.GetAllUser();
  4.  
  5. Stream f = new FileStream(Server.MapPath("~") + @"\Output\Template\ApplyFormTemplate.doc", FileMode.Open);
  6. Document doc = new Document(f);
  7.  
  8. // 建立图片事件
  9. doc.MailMerge.MergeImageField+=new Aspose.Words.Reporting.MergeImageFieldEventHandler(MailMerge_MergeImageField);
  10.  
  11. // 执行数据更新
  12. doc.MailMerge.Execute(users.Tables[0]);
  13.  
  14. // 删除未使用的空白域
  15. doc.MailMerge.DeleteFields();
  16.  
  17. // 将结果发送到客户端
  18. doc.Save("ApplyForm.doc", SaveFormat.Doc, SaveType.OpenInWord, Response);
  19.  
  20. f.Close();
  21. }
  22.  
  23. private void MailMerge_MergeImageField(object sender, Aspose.Words.Reporting.MergeImageFieldEventArgs e)
  24. {
  25.     if (e.FieldValue != null && e.FieldValue.ToString() != "")
  26.     {
  27.         PhotoService photoService = new PhotoService();
  28.         string photoPath = photoService.GetPhotoPathById((int)e.FieldValue);
  29.         if (File.Exists(photoPath))
  30.             e.Image = Image.FromFile(photoPath);
  31.     }
  32. }

  上面的代码,可以将数据库中所有用户的资料按模板显示,每个人的详细记录一个页面。

  需要特别说明的是上面的代码中包含了照片。使用方法如下:

  在需要加模板照片或图片的地方,同样插入域,但域名设置为:Image:数据表字段名,该处的数据表字段可以为String(也就是图片地址),也可以是二 进制的图片。然后通过MergeImageField事件,将该处的显示进行修改。如上面代码,e.FieldValue就是数据库里所保存的数据。然后 通过一些代码改变,设置e.Image的值为具体图片,那么就完成。



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果

文章转载自:网络转载

登录 慧都网发表评论


暂无评论...

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关厂商
相关产品
Aspose.Words

无需Microsoft Word也可在任何平台上满足Word文档的一切操作需求。

在线
客服
在线
QQ
电话
咨询
400-700-1020
购物车 反馈 返回
顶部
在线客服系统
live chat