你好,欢迎来到电脑编程技巧与维护杂志社! [免费注册][请登录 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 网络与通信
在线生成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页面中,前端传给后端的内容主要是文档模板编号,即替换哪个文档模板;后端推送给前端的内容主要是生成后的文档。

  推荐精品文章

·“物链网”的正确打开姿势:区块链如何拯…
·Facebook利用人工智能的六种方式,有些你…
·微软推出Visual Studio Kubernetes工具包…
·Facebook 正在重构 React Native,将重写…
·Facebook 正在重构 React Native,将重写…
·GitLab发布Web IDE 在Web端为你提供集成开…
·5G第一阶段标准发布 中国厂商标准占三成
·微软Windows 10的上下文菜单引入Fluent D…
·蚂蚁金服完成新一轮100亿美元融资 估值15…
·搭搭云发布3.0平台上线暨品牌升级 让SaaS…
·京东推出京点智慧办公方案 一体化服务平台…
·Java 流(Stream)、文件(File)和IO
·Java 异常处理
·Java 基础语法

  联系方式
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