1.数字出版技术国家重点实验室(筹),北京 100871
2.北京信息科技大学 计算机学院,北京 100101
1.数字出版技术国家重点实验室(筹),北京 100871
2.北京信息科技大学 计算机学院,北京 100101
随着网络出版和移动技术的发展,通过便携的手持移动设备阅读电子图书或文档已成为一种普遍的需求。然而,现存大量的流式文档,大多数都是由电脑办公软件直接保存生成的,不便甚至不能在手持设备上使用,导致手持设备无法读取以前保存的信息,给使用者带来诸多的不便。目前以EPUB[1]为代表的电子书格式标准已经相对成熟,能够很好地被大多数手持设备理解和使用。因此将流式办公文档格式(如UOF)转换为手持设备支持的电子书格式(如EPUB)已成为迫切的需求。
作为流式文档标准之一的UOF[2]是我国自主知识产权的中文办公文档格式标准,采用W3CXML Schema作为文档格式标准定义语言,形成独立、完整、开放及可扩展的文档描述体系结构,方便用户扩展;文档标准体系架构支持模块的可重用性,减少文档描述的冗余,保证文档简洁易用;UOF于2007年作为国家推荐性标准正式发布实施,UOF格式文档以其诸多的优势,得到越来越广泛的应用[3]。如今各类常用的办公软件,如永中Office、WPS、Microsoft Office及Open Office等均已支持UOF文档格式[4]。目前ODF_UOF_Converter转换器可以实现UOF格式与ODF[5]格式的双向转换,UOF Translator转换器则可以实现UOF格式和Open XML[6]格式之间的双向转换[7]。
作为电子书标准之一的EPUB是一个开放的电子书标准,内部使用了XHTML[8]来展现文字,并以ZIP压缩格式来打包文件内容。EPUB于2007年9月成为国际数字出版论坛(International Digital Publishing Forum,IDPF)的正式标准[9]。尽管一些办公文档格式(如PDF)已经可以实现到EPUB格式的转换,如:EpubBuilder和PDF to EPUB转换器等,但遗憾的是目前尚未有相关文献提出UOF格式与EPUB格式的转换。
本文在研究分析上述转换器的基础上,首次提出一种UOF格式与EPUB格式的转换方法,该方法针对UOF和EPUB格式的结构差异问题,采用预处理同主转换相结合的转换思路,能够对于UOF中的大部分常用功能点,实现有效的转换。
为了实现该转换,便于手持设备用户浏览UOF文档,本文将重点分析UOF格式和EPUB格式的结构以及两种结构之间的映射关系,并设计转换式样单(stylesheet)[10],构建转换器,为方便用户操作还开发了图形界面,从而实现UOF文档格式到EPUB电子书格式的转换,同时也为其他流式文档到电子书的转换提供了思路。这不仅对于UOF的推广实施有积极的促进作用,而且对于文档信息共享与交换以及流式文档到电子书的转换都具有重要意义。
2.1 UOF文档格式
UOF1.0/1.1采用单一XML文件描述,根据描述内容的不同分块表述。本文在UOF的基础上提炼了一种文字处理文档模型,并用类形式化Z语言[11]进行了描述。可以将UOF文字处理文档看作一个树形结构的模型,由元数据metadata、书签 集 bookmarks、链 接集 hyperlinks、式 样 集styles、对象集objects、文字处理wordprocessing组成的一个集合。表示为:
文字处理中包含针对整个文档属性的描述部分“公用处理规则commonRule”和主体body。即
主体部分可以看成由分节section、逻辑章节logicSection、段落p,文字表tbl等元素组合的集合。表示为:
图1展示了UOF文字处理文档主体的层次结构。
图1 文字处理主体层次结构图
段落p可以看作有相同段落属性的句子的集合。这些句子可以通过pref从式样集中继承相同的段落式样,又可以通过段落属性PROP(P)描述引用式样之外的段落属性。即
句的集合Runs是句元素Run的序列,Run包括句式样引用rref,句属性PROP(R)和句内容rContent。句内容是RunContent的包类型。即
句内容由文本内容text组成。即
2.2 EPUB电子书文档格式
由于目前EPUB2.0应用最为广泛,且大多数电子书阅读器支持EPUB2.0,为适应需求,本文选择标文通文档格式到EPUB2.0标准的电子书格式的转换。
EPUB2.0包括以下三项规范:
(1)开放出版结构(Open Publication Structure,OPS)[12],定义内容版面,规定了开放式电子书的内容结构。
(2)开放打包格式(Open Packaging Format,OPF)[13],定义文件结构,主要用于组织OPS文档和提供相应的导航机制。
(3)容器格式(Open Container Format,OCF)[14],将电子书相关的所有OPS、OPF文档按规范要求置入该容器中,最终形成一个EPUB文档。
EPUB格式遵循IDPF推出的OCF规范,OCF规范遵循ZIP压缩技术,即EPUB电子书本身就是一个ZIP文件,由多个部件组成,包含电子书相关的所有OPS和OPF文档。除了少数图片文件外,大多数元数据部件采用XML文件形式,并采用XHTML显示内容。下面以一个最简单的未经加密处理的EPUB电子书为例进行分析,EPUB文档树形结构模型由头文件minetype,信息文件container,元数据文件opf、逻辑目录文件ncx和文档内容OEBPS组成,文档内容是内容Content的包类型。表示为:
内容Content包括文本信息集XHTML,式样信息css和对象集IMAGE。表示为:
文本信息集是由若干html和xhtml组成。表示为:
对象集表示为:
IMAGE={jpg,png,bmp等}
EPUB电子书内部组织结构,如图2所示。
图2中带有阴影部分目录或文件是EPUB文档中必不可少的组成部分。mimetype文件,说明了EPUB的文件格式,必须确保在EPUB项目的根目录中且内容不能更改。EPUB根目录下必须包含META-INF目录,EPUB阅读器首先会查看该目录下的container.xml文件,该文件包含电子书的元数据文件位置和打开方式,虽然文件非常小,但是对结构要求很严格。元数据文件opf,文件名没有特殊要求,它指定了电子书中所有内容的位置。ncx为电子书的逻辑目录,定义了电子书的目录表。图2中的其他文件名可以根据需要自行命名。
图2 一个简单EPUB电子书内部结构
2.3 两种文档格式的差异
通过上述两种文档格式的分析可以看出两者在具体格式的结构上存在一些不同之处。
在文档结构方面,UOF文档采用了单一文件形式存储,在文档内部根据描述内容的不同分块表述。UOF主体部分描述文档的主体内容,通过分节描述了文档的页面排版格式,段落和表格则描述了节所包含的内容和格式信息。UOF除了描述主体内容外,还描述了与主体相关的其他附属文档信息,如用于定位的书签,用于链接到外部位置的超级链接等。这些与主体相关的附属信息并没有直接嵌入到主体内部,而是根据信息的用途分类,独立于主体外分别描述。这些信息通过本身的标志符和主体内对其标志符的引用建立起直接的联系。这种方式既清晰地描述了主体以及其必要的附属信息,又有效地将附属信息与主体分离,同时便于附属信息内容的更改和统一管理[15]。
EPUB基于压缩ZIP文件格式规范。ZIP文件被看作一个容器,每个容器由多个部件组成,每个部件描述了文档的不同部分,除了少数代表图片外,大多数部件采用XML文件形式,包含了文档内容信息和文档格式信息;另外,容器中还包含了描述部件之间联系的关系部件,当部件组成EPUB格式文档时,关系将描述这些部件如何协同工作。
2.4 UOF到EPUB的结构对应
虽然两种文档格式在具体结构上存在一些差异,但通过对UOF与EPUB格式的分析可以看到二者在整体上还是存在很大相似性的。首先,两者都是基于XML规范描述的,仅有部分多媒体数据存在一些差异;其次,两种格式的主要部件存在对应关系,如图3所示。
图3 UOF与EPUB主要部件对应关系
如图3所示,UOF中的元数据部分对应EPUB中的元数据文件(content.opf)。UOF中的文件链接集、主体部分对应EPUB中的内容部分(content.xhtml)。UOF中的式样集和EPUB中的层叠式样单(main.css)都描述了文档的样式信息。UOF对象集内描述的图形信息对应于EPUB的多媒体文件(这里主要是指一些图片文件)部分。
3.1 转换思路
由上述二者的分析可得,UOF字处理格式到EPUB格式之间的转换大体上是可行的。
UOF自身基于XML文档格式,其包含的内容丰富,涉及到文档的格式、内容等诸方面,需要进行转换的元素和属性很多,且转换后的EPUB文件中的大部分部件也是基于XML描述的,因此本文采用XSLT(可扩展式样单转换语言)技术实现UOF文档格式到EPUB文档格式的主转换[16]。思路如图4所示。
图4 EPUB到UOF转换思路
首先需要分析两种格式中各元素的映射关系,然后基于该映射关系,设计转换式样单,通过预处理和主转换相结合的方法,实现UOF文档格式到EPUB文档格式的转换。下面从元素映射关系分析、式样单设计和文档格式转换流程三个方面来阐述。
3.2 元素映射关系分析
本文主要是面向UOF文字处理主体部分的转换,同时也对元数据、链接集、对象集和式样集做了相关的转换。如图5所示,UOF主体部分到EPUB各元素的映射关系。
UOF中的“段落”可以在EPUB中用<div>来描述,“段落属性”可写到CSS文件中,具体使用时可直接引用CSS中的式样。UOF中的“自动编号集”可以用EPUB中的<ol>和<ul>来分别表示“有序列表”和“无序列表”。UOF中的文字表和EPUB中的<table>都是用来描述表格的,UOF文字表又可以细分为行,在EPUB中<tr>与之对应;UOF的行由单元格组成,对应于EPUB中的<td>,单元格内都由段落或者嵌套文字表构成。关于UOF中的分节可以在EPUB中的<navPoint>找到对应的描述。
由于UOF文档格式与EPUB文档格式结构的差异,在分析查找映射关系时,不可能将两种格式中所有元素都对应起来,因此不得不舍弃一些在EPUB中无法对应的元素,比如UOF中“公用处理规则”、“修订”、“扩展区”等。
图5 UOF主体到EPUB各元素的对应关系
3.3 式样单设计
基于上述元素映射关系的分析,为实现UOF文档格式到EPUB文档格式的转换,根据转换思路编写主转换式样单,该式样单包括文档格式中所有功能点的转换入口,具体转换则交由每个功能点的转换模板实现。将这些模板单独存放在各自的转换式样单中,由主转换式样单进行调用。这种模块化设计使得转换式样单结构清晰且易于调试和维护。本文共设计了三个主式样单和四个子式样单,通过“import”方法声明对子式样单的引用,主式样单中的模板调用子式样单中的模板实现转换[17]。式样单的功能如表1所示。
表1 式样单功能表
表1中的content_opf.xsl实现UOF文档中元数据部分到EPUB内部content.opf文档的转换;main_css.xsl实现UOF文档中式样集部分到EPUB内部main.css文档的转换;uof2xhtml.xsl通过调用4个子式样单,实现UOF文字处理部分主要内容的转换,具体调用关系如图6所示。
图6 各式样单调用关系
主转换首先调用content_opf.xsl式样单生成EPUB文档必须文件之一content.opf,之后调用main_css.xsl式样单,完成UOF式样集部分的转换,最后通过调用主式样单uof2xhtml.xsl,并且uof2xhtml.xsl会自动调用其他四个子式样 单(paragraph.xsl、image.xsl、table.xsl和 list.xsl),完 成UOF文档中段落、图片、表格以及列表的转换。
3.4 文档格式转换流程
由于UOF文档采用了单一文件形式存储,而EPUB采用多文件压缩形式存储,因此UOF到EPUB文档格式转换过程中必定会出现一些中间格式的临时文档,具体转换流程如图7所示。
图7 UOF格式文档到EPUB格式文档转换流程图
首先对待转换的UOF文档进行预处理,之后调用XSLT式样单进行转换生成中间文档,最后将生成的中间文档进行打包,生成符合标准的EPUB格式文档。
3.4.1 中间文档格式生成
由于图片在UOF文档中以Base64编码形式存放,用XSLT技术无法提取Base64编码,因此需要对UOF文档进行预处理。预处理程序首先从UOF文档中提取出存储图片信息的Base64编码字符串,然后调用Base64解码器将提取出来的Base64编码字符串解码生成EPUB文档所需的图片文件,即图7中的中间文档A。预处理程序完成之后主程序将会依次调用三个主xsl式样单生成opf、css以及xhtml文件。这里通过三个主式样单转换生成的文件即为图7中的中间文件B。
3.4.2 EPUB文档格式生成
从图2 EPUB结构分析可知,仅仅有中间文档无法生成合法的EPUB格式文档。本文在充分研究EPUB文档结构的基础上,在转换开始前就准备好了生成EPUB所需目录结构以及一些必备的核心文件。最后采用zip压缩方法,将中间文档以及一些必备的核心文件进行打包,最终实现EPUB格式文档的生成。
图8 系统结构层次图
基于上述方法,给出UOF到EPUB的文档格式转换器。本章首先给出系统架构,然后对实验结果进行了详细的分析。
4.1 系统架构
UOF到EPUB的文档格式转换系统的总体架构如图8所示。
(1)打开、解析文档模块,该模块的功能是读取UOF和XSLT文件。
(2)预处理模块,该模块的功能是对UOF进行预处理,若UOF文档中包含图片,将会把图片提取出来。
(3)中间文件生成模块,该模块主要是调用三个主式样单对UOF关键部分进行转换。
(4)EPUP格式文件生成模块,负责对中间文档的打包以及EPUB格式文档的生成。
(5)系统还有一个install模块,功能是将主程序UOF2EPUB封装成一个可执行的安装程序,方便用户在不同的电脑上安装使用。
4.2 结果分析
图9展示了文档转换效果。图9(a)是在永中Office 2010中打开UOF文档的效果,其中包括了字体样式、列表、超链接、图片表格等多种内容。图9(b)是经过转换器转换得到的EPUB格式文档在ebook-viewer的显示效果。可以看到两者的效果基本一致。
图9 转换效果
在UOF到EPUB转换器的实现过程中,根据《“中文办公软件文档格式规范”功能分级与测试规范》(内部资料)中所列的80多个常用功能点进行了统计,其中约63%的功能点可进行对应转换。可以完全转换的有字体样式、单元格合并、列表和图片等。但部分功能点,如着重号、上下标等,由于软件的实现方法不同在显示效果上存在一些差异,该部分约占全部的功能点的15%,具体如表2所示。
表2 UOF功能点到EPUB转换比例1)
通过对UOF和EPUB文档格式进行深入的分析,建立UOF格式到EPUB格式的结构对应关系,并详细分析两种格式中的元素映射关系;针对UOF格式和EPUB格式结构,采用XSLT转换技术进行核心功能的转换,设计转换式样单并给出了转换流程;最后实现了UOF到EPUB文档格式的转换器,并且针对文字处理的各主要功能点编写了UOF测试案例,测试文档格式转换的正确性。由于EPUB电子书格式以及电子书阅读器的一些限制,本文未能对UOF的全部功能点进行转换。但通过转换生成的EPUB文档能够显示UOF文字处理文档的基本内容,如字体样式、列表、表格、图片等,满足了用户基本需求。将来还可以进一步对式样单进行优化,以减少转换差异,提高转换效率。
[1]International digital publishing forum.EPUB[EB/OL].[2012-08-09]. http://idpf.org/epub.
[2]中文办公软件基础标准工作组.GB/T 20916-2007中华人民共和国国家标准中文办公软件文档格式规范[S].北京:中国标准出版社,2007.
[3]李宁.中文办公软件文档格式规范(1.0、1.1版)使用指南[M].长沙:湖南师范大学出版社,2010.
[4]方春燕.“标文通”(UOF)标准研制概况[J].北京信息科技大学学报,2010(25):6-10.
[5]ISO/IEC 26300:2006 Open document format for office applications(OpenDocument) v1.1[S].2007.
[6]ISO/IEC29500:2008 Office open XML file formats[S].2008.
[7]罗文甜,李宁,侯霞.基于XML的主流办公文档格式间的转换器研制情况概述[J].北京信息科技大学学报,2010(25):109-116.
[8]W3C recommendation XHTML 1.1-module-based XHTML-second edition[S].2010.
[9]Wikipedia.EPUB[EB/OL].[2012-08-09].http://en.wikipedia.org/ wiki/EPUB.
[10]XML使用指南.GB/Z 21025-2007中华人民共和国国家标准化指导性技术文件[S].北京:中国标准出版社,2007.
[11]ISO/IEC JTC1 SC22,ISO/IEC ISO/IEC 13568:2002 Information technology-Z formalspecification notation-syntax,type system and semantics[S].Geneva:ISO/IEC,2002.
[12]IDPF.Open Publication Structure(OPS) 2.0.1 v1.0.1[EB/OL]. [2012-08-09].http://idpf.org/epub/20/spec/OPS_2.0.1_draft.htm.
[13]IDPF.Open Packaging Format(OPF) 2.0.1 v1.0.1[EB/OL]. [2012-08-09].http://idpf.org/epub/20/spec/OPF_2.0.1_draft.htm.
[14]IDPF.Open Container Format(OCF) 2.0.1 v1.0.1[EB/OL]. [2012-08-09].http://idpf.org/epub/20/spec/OCF_2.0.1_draft.doc.
[15]董慧.基于XML的文档格式转换技术研究——UOF XSL-FO转换[D].北京:北京机械工业学院,2007.
[16]Fitzgerald M.Learning XSLT[M].[S.l.]:O’Reilly Media,2003.
[17]张晓敏.“标文通”与HTML文档格式的转换技术研究[D].北京:北京信息科技大学,2008.
标文通文档格式到电子书格式的分析与转换
刘 寅1,2,冯 雪2,李 宁2,田英爱2
LIU Yin1,2,FENG Xue2,LI Ning2,TIAN Ying’ai2
1.State Key Laboratory of Digital Publishing Technology,Beijing 100871,China
2.School of Computer,Beijing Information Science&Technology University,Beijing 100101,China
For the realization of the document formats conversion from UOF to EPUB eBook,this paper focuses on analysing the structures of UOF and EPUB format and the relationship between the two formats,then designs the style sheets in detail and suggests a 2-phase conversion process for format transformation,including the pre-processing and major converting.As the result, a convertor is implemented and can handle the conversion correctly and conveniently for using handheld devices to read the UOF documents.This research is beneficial to document information exchange and transformation form flow documents to eBook as well as to the widely use of UOF.
Uniform Office Format(UOF);eBook;EPUB;XSLT;document format transformation
为实现“标文通”(Uniform Office Format,UOF)文档格式到EPUB电子书格式的转换,重点分析了UOF格式和EPUB格式的结构以及两种结构之间的映射关系,并详细设计了转换式样单,提出了预处理与主转换相结合的转换思路。通过构建转换器,首次实现两种文档格式之间的转换,方便手持设备用户浏览UOF文档。该项研究对于文档信息共享,流式文档到电子书的转换和“标文通”国家标准的推广实施具有重要意义。
标文通;电子书;EPUB;式样单;文档格式转换
A
TP317
10.3778/j.issn.1002-8331.1210-0124
LIU Yin,FENG Xue,LI Ning,et al.Analysis and transform from UOF document format to EPUB format.Computer Engineering and Applications,2013,49(11):130-134.
核高基重大专项网络集成办公软件研发及产业化(No.2010ZX01044-001-001);北大方正集团有限公司数字出版技术国家重点实验室开放课题资助;北京市教委科技面上项目(No.SQKM201211232011)。
刘寅(1986—),男,硕士研究生,研究领域为置标语言与多媒体技术;冯雪(1984—),女,博士,讲师,研究方向为数字版权保护技术;李宁(1964—),男,博士,研究员,研究方向为XML应用、文档处理、多媒体;田英爱(1975—),女,讲师,研究方向为文档处理。E-mail:liuyin861107@qq.com
2012-10-15
2013-01-09
1002-8331(2013)11-0130-05
CNKI出版日期:2013-01-11 http://www.cnki.net/kcms/detail/11.2127.TP.20130111.0953.013.html