预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

http://www.paper.edu.cn 基于XML的可扩展文档转换系统的设计与实现 薛红军,杨俊,孙强 北京邮电大学计算机科学与技术学院,北京(100876) E-mail:xuehongjun52@gmail.com 摘要:本文给出了一种以XML为中间格式的多格式文档互相转换的解决方案。并根据此 方案采用纯java开发出了扩展文档转换系统(简称EDCS),它不仅支持各种常见文档如 WORD,EXCEL,PDF,HTML等格式文档到XML文档的转换,而且也支持XML文档到 RTF,PDF,HTML文档的转换。此外,还具有跨平台,可移植性等优点。 关键词:XML,MSWord,文档解析,文档转换 中图分类号:TP391 1.引言 随着我国办公自动化、电子政务的飞速发展,公文文档的交换也日趋频繁。当今主流文 档的格式也很多,MicrosoftOffice、WPSOffice、OpenOffice、PDF等都为广大政府和个人 所用。而文档格式的不同为信息的快速传输和交换带来了极大的不变,因此如何在各种文档 转之间进行转换已经成为一个急待解决的问题。本文首先介绍了可扩展文档转换系统的框 架,然后分析了Word文档的格式。在此基础上提出了如何将Word文档转换为XML文档, 以及将XML文档转换为HTML文档。 2.系统框架设计 文档转换的通用方法是在分析文件格式的基础上,定义一种中间语言或中间结构来描述 文件有效语义和内容数据,并定义代表这些数据的标记规则,建立该标记规则与其它文件之 间的映射关系,从而实现文件之间的转换[1][2]。 由于XML元语言特性及结构化的特点,使其成为了互联网异构环境中不同类型和不同 领域数据交换的开放标准。XML文档通过定义标记描述文档的结构与意义,它处理的数据 具有结构化特点,容易阅读和编写。同时具有强大的可延展性和自我描述性,为实现Web 文件在网络间的数据交换、处理、存储和信息搜索提供了最方便的载体。因此成为交换语言 的首选[3]。因此,以XML为中间格式文档,设计系统框架如图1所示: 源文档XMLDOM树 Word目标文档 RTF Excel PDF PPT HTML RTF Text PDF 其它 其它 图1可扩展文档转换系统的框架 -1- http://www.paper.edu.cn 在图1中,通过从底层分析源文件的二进制格式,解析出源文件的文字、图片、样式等 信息,生成XMLDOM树,存储在我们定义好的XML文件中,然后可以根据需要转换成目 标格式的文档。在从源文档转XML文件以及从XML转目标文档的过程中,根据不同的转 换需要定义一些规则,比如从XML到HTML的转换,需要定义XSLT文档,在XSLT文档 中记录了的规则包括:XML中表示表格的标签与HTML中的<table>,<tr>,<td>对应,…… 3.Word文档的结构 Word是微软公司开发的文档编辑工具,它使用流式语言记录数据。它将文字、格式、 颜色、图形图像、超文本链接、声音、动态图像等信息封装在一个文件中,用来表示文档和 电子视图描述。由于它集数据与显示说明于一体,倾向于文本的编辑模式,文档格式严格、 规范,非常适合人来处理,但是对于计算机来说,对文档进行内容提取、全文检索、数据挖 掘、信息过滤等操作,十分困难。需要对Word文档加以分析并作相应的处理,以便后续操 作。而另一方面随著WWW的普及,各种应用的展开,HTML文件成为最热门的文件格式。 如果能借助XML良好的数据交换性,以XML文件为中间格式文档把Word文档转换成 HTML文档或者WML格式文档,就可以在WWW浏览器或者WAP浏览器上浏览类似原来 Word文件里的内容。 要实现从Word文档向XML文档的转换,必须先了解Word文件的结构。MicrosoftWord 是OLE2.0应用程序。其文件结构如图2所示。一个Word文件由一个MainStream,一个 SummaryInformationStream,一个TableStream,一个DataStream,以及零个或多个包含在 Word文档中内嵌OLE2.0对象的私有ObjectStream组成。MainStream中包含了大部分的 Word二进制数据。TableStream包含了多种描述文档结构的格式数据。DataStream包含一 些MainStream中难以表示的一些字符,例如描述内嵌图片的二进制数据。Summery InformationStream包含了word文档的摘要信息。ObjectStream中存储了内嵌对象的二进制 数据。 MainStream TableStream DataStream ObjectStream SummaryIn