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

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

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

转载于:https://www.cnblogs.com/linwinfan/archive/2010/01/07/1641340.html

Aspose.Word相关推荐

  1. 利用Aspose.Word控件和Aspose.Cell控件,实现Word文档和Excel文档的模板化导出

    我们知道,一般都导出的Word文档或者Excel文档,基本上分为两类,一类是动态生成全部文档的内容方式,一种是基于固定模板化的内容输出,后者在很多场合用的比较多,这也是企业报表规范化的一个体现. 我的 ...

  2. Aspose.Word 的常见使用(不用模板创建)

    起因 因项目需要,而且使用html转Word的时候,样式不兼容问题,于是只能使用Aspose.Word通过代码生成.下面是通过DocumentBuilder来设计Word的,但是和使用模型拼接的差不多 ...

  3. 利用Aspose.Word控件实现Word文档的操作

    Aspose系列的控件,功能都挺好,之前一直在我的Winform开发框架中用Aspose.Cell来做报表输出,可以实现多样化的报表设计及输出,由于一般输出的内容比较正规化或者多数是表格居多,所以一般 ...

  4. aspose 换行写_利用Aspose.Word控件实现Word文档的操作

    Aspose系列的控件,功能都挺好,之前一直在我的Winform开发框架中用Aspose.Cell来做报表输出,可以实现多样化的报表设计及输出,由于一般输出的内容比较正规化或者多数是表格居多,所以一般 ...

  5. 使用Freemark和aspose.word实现动态word转pdf

    前言 因为公司业务需要实现业务人员提供wodr模板,然后系统填充数据生成pdf文件,本文的想法是通过Freemark填充数据生成word再通过aspose.word把word文档转为pdf文档. 本文 ...

  6. Aspose.Word企业案例:Progetto Adele 使用 Aspose API 从预定义模板自动生成 Word 和 PDF 文件

    关于 Progetto Adele Progetto Adele是一家在物流和国际货运市场运营的软件公司.它成立于 2003 年,由在物流和货运公司软件开发方面具有长期经验的人员管理.在过去的 15 ...

  7. aspose.word删除分页符

    Aspose.word用法都类似,此处使用aspose for java进行操作 项目需要将word去掉所有的分页符,再进行一级大纲为划分的分页 目标文件状态: 思考逻辑:遍历整个paragraphs ...

  8. 记Aspose.Word的使用中出现的问题

    最近实现一个功能,具体需求就是把数据库中的内容转换成word文档,文档中需要包含标题.目录以及表格信息. 这里我使用的是Aspose.Word类,这是一个很强大的文档操作工具包,实现了所有操作文档的所 ...

  9. aspose将word转换为pdf[aspose.word.java 18.11]

    aspose.words.java for 18.11 前言:由于网上找的aspose.word存在许多问题,主要是存在水印,破解版献上,互相交流学习.有问题可联系我微信(shiguangxuanya ...

  10. Aspose Word常用操作

    Aspose Word常用操作 使用Aspose Word操作模版 创建Document对象 常用方法 使用Aspose Word操作模版 刚好最近学到Aspose Word,有些心得,记录下来.下面 ...

最新文章

  1. Vue+element UI实现“回到顶部”按钮组件
  2. 高性能Mysql主从架构的复制原理及配置详解
  3. 一文尽览!文本对抗攻击基础、前沿及相关资源
  4. 关于--Error: User Command terminated, Exit-Code = 1解决办法
  5. Asp.Net统一前后端提示信息方案
  6. 神奇的HyperLogLog算法
  7. unity开宝箱动画_unity简单动画实现
  8. asp.net mvc源码分析-DefaultModelBinder 自定义的普通数据类型的绑定和验证
  9. 2018 ICPC Asia Jakarta Regional Contest
  10. java如何关闭creo,creo怎么把网页关掉
  11. 一场游戏平台商与游戏大厂的战争
  12. 中小企业文件、打印解决方案
  13. 米线店结账程序 装饰着模式_真实数据:外卖销售9999+ 长沙米线万单店 它究竟是怎么做到的?...
  14. 新浪微博开放平台链接耗尽的情况分析
  15. DP动态规划思想讲解
  16. R如何读取txt文件
  17. 企业微信每日定时自动上报
  18. 幽灵蛛(pholcus)规则(二)
  19. 如何通过js关闭微信浏览器页面
  20. 【CXY】JAVA基础 之 Map

热门文章

  1. spring-boot-starter-thymeleaf对没有结束符的HTML5标签解析出错
  2. 用css实现图片翻转
  3. Lumia 830 win10m 启用触摸按键
  4. centos,apache运维经验
  5. sharepoint 2010 在线打开office时报错
  6. BMC AR 配置AREA LDAP
  7. 部门开始做技术talk
  8. for循环使用后contains方法失去效果
  9. 关于css布局的定位问题
  10. AnyChart如何快速创建3D饼图和圈图(含代码)