你好,欢迎来到电脑编程技巧与维护杂志社! [免费注册][请登录 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 网络与通信
在线生成Word文档的实现与应用(一)
 

摘要:本文从开发者的角度介绍了如何在B/S架构下实现在线Word文档的生成,并通过开发实例对此应用进行详细说明。通过本文,读者不仅可以了解在B/S平台下实现在线文档生成的开发过程,而且还能体会到在B/S平台进行办公组件开发的技巧和乐趣。

关键词:在线文档生成 B/S架构 COM组件 JACOB

1 概述

1.1 在线生成Word文档应用实例

所谓在线生成Word文档就是在网页上控制Word文档的生成,而生成后的Word文档经过下载后即可作为本地Word文档,访问者可以直接编辑和打印文档;而相比之下,大多数情况下,由于网页结构的复杂性(例如DIVIFRAME等组件的嵌套),访问者无法实现直接对网页内容进行打印,或者将网页内容转换到本地Word文档。

简而言之,在线生成Word文档实际上是办公需求(办公文档处理)与B/S应用(门户网站等)的结合,其既可实现B/S应用下的共享方式,又延续了处理办公文档的习惯。

12分别是在线生成Word的网页内容和生成Word后的网页效果。

 


 

1 在线生成Word文档网页


2 在线Word文档生成页面

 

       通过将21对比可知,在线生成的Word文档内容与网页同步,且格式和排版已经制定,用户无需再花费过多精力进行文档的处理,由此提高了文档处理的效率。

      

1.2 实现要点

实际上,在线生成Word文档在内容展现形式上结合了B/S架构特性(例如:基于HTTP的内容推送、OLE对象的嵌入),而其后台处理与开发者熟知的单机应用并没有什么太大的不同,其实质上还是对Office COM组件的应用。

通过Office COM组件,开发者可以方便地对Office文档进行操作,例如:新建、保存、另存为、选取文本块、插入文等。如此一来,使用Office COM组件即可实现Word文档的生成。而要实现文档的在线生成,一则需要B/S服务端后台使用Office COM组件,另则需要有数据源支撑所生成文档的内容的动态性。在线Word文档生成示意如3所示。

 


3 在线Word文档生成示意

 

3中,Web服务端采用的是J2EE平台,则其数据源提取将会采用JDBC方式。由此可见,在线生成Word文档的关键点:Word程序COM组件应用、文档内容提供和页面交互。

1.2.1 Word程序COM组件的使用

Word程序COM组件是生成Word文档的核心,而对于COM组件的应用,大多数开发者的开发环境恐怕还是以微软公司的VS或宝兰公司的C++ BuilderDelphi开发环境为主。对于Java开发者,接触COM组件的机会显然要C++程序员要少得多。那么如何让Java程序员用上Word程序的COM组件呢?

鉴于数量庞大的Java程序员和Office用户群体,该问题很快得到了较好地解决,一个叫JACOBJAVA-COM Bridge)的开源项目提供了桥接JavaCOM组件的库,Java程序员可以借助该库来调用COM组件。1中是该库中重要类的及说明。

1 JACOB库中重要类及说明

/接口

说明

com.jacob.activeX.ActiveXComponent

ActiveX组件,表示COM组件对象

com.jacob.com.Dispatch

调度接口,用于调用接口方法

com.jacob.com.Variant

多格式数据类型,作为接口方法的参数类型

 

需要注意的是,JACOB通过Java本地化接口(JNI)的方式来实现JavaCOM的桥接,所以其部署时还需要同时分发本地库(动态链接库,即DLL文件)。

1.2.2 文档内容的提供

结合笔记的开发经验,文档内容的提供可分为两个部分:第一是文档模板,第二是后台数据。

1. 文档模板

文档模板可以理解为文档中模式相对固定的内容,例如:页眉、标题以及内容标签,如4示的就是本案例中的文档模板

 

4 WORD模板文件

 

       4中的模板中,文档的标题文字和表格的头部都是固定内容,而表格的单元格采用的是描述内容的标签,其格式为:[%=RS(数据集ID,行号,列号)%],这些标签最终将要被实际数据所替换。

2. 后台数据

后台数据即从数据库中所获取的内容,JSP页面从数据库获取数据后,利用Word程序COM组件的替换方法将后台数据替换文档模板中的标签。

1.2.3 页面交互

JSP页面中,前端传给后端的内容主要是文档模板编号,即替换哪个文档模板;后端推送给前端的内容主要是生成后的文档。

  推荐精品文章

·一文解读:工程师常用的接口大全
·谷歌在深圳设立办公室 或专注硬件业务
·甲骨文发布关键补丁 修复英特尔芯片漏洞
·容器圈2017年回顾及2018年技术热点预测
·外媒速递:Web开发者与用户界面开发者之间…
·在2018年最值得去学习的编程语言
·共享医疗来了!温州全民健康信息化“十三…
·百度 CES 发布会:重磅推出 Apollo 2.0,…
·数据科学热到爆,如何让数据成为运维的大…
·芯片涨价潮再度来袭,2018芯片国产化迫在…
·美团云+AI,打造最开放人工智能平台,带来…
·京东京麦:微服务架构下的高可用网关与容…
·阿里云计算公司总部效果图曝光 预计2021年…
·东进:加密将成为中国企业数据安全的标配…

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备06048724号,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区长春桥路5号6号楼1209室,邮编:100089