利用MegaZine 3构建虚拟书平台
韦成府, 聂华
北京大学图书馆 北京 100871
摘要

特藏资源是每个图书馆区别于其他图书馆并能独立存在的基础。虚拟书可以相对简单、直观而真实地在线展示图书馆的特藏资源,是对传统文件浏览方式的有效补充。为了让读者能够在线欣赏图书馆的特藏资源,北京大学图书馆借助MegaZine 3设计开发虚拟书平台。通过测试,证实MegaZine 3是特藏资源在线展示的一个有效工具。

关键词: 特藏资源; MegaZine 3; 虚拟书; 翻页
中图分类号:TP393
Building a Virtual Book Platform by MegaZine 3
Wei Chengfu, Nie Hua
Peking University Library, Beijing 100871, China
Abstract

Special collections is the basis of each library to be different from other libraries and to exist independently. Virtual books can be simply, intuitively and realistically to show special collections resources of library online, and this is an effective supplement to traditional file browsing. In order to enable the readers to appreciate the library‘s special collections resources online, Peking University Library designs and realizes a virtual book platform with MegaZine 3. The test shows that MegaZine 3 can be a useful and effective tool for showing special collections resources online.

Keyword: Special collections resource; MegaZine 3; Virtual book; Flip
1 引言

任何一所图书馆都应该具有自己的特色。特藏资源是每个图书馆区别于其他图书馆并能独立存在的基础,而且在资源收集方面,一般都已具备了一定的规模。传统的形式基本都是读者检索某个关键字或者按照某个分类来浏览欣赏图书馆提供的特藏资源。这种情况下,读者需要多次点击才能看到具体的内容,即元数据、电子版特色资源、其他综合性的描述等。也许读者并不关心这些东西,而想看看图书馆的特藏资源是什么。因此,需要一种页面相对简单,更直观、更真实的特藏资源展现方式。

2 MegaZine 3介绍
2.1 虚拟书

虚拟书可以用来展示很多种电子文档,如电子表格、文章/小说、内部/外部链接和多媒体资源等。读者可以像浏览纸本书籍一样翻动虚拟书,这是对传统文件浏览方式的有效补充,增加了读者对数字图书馆的感性认识。

2.2 MegaZine 3

MegaZine 3是一个基于LGPL协议的开源的PageFlip制作软件,它可以用于制作书籍翻页效果的Flash开源组件,支持页面动态加载,页面缓存加快浏览速度,还可以通过插件扩展现有功能。页面中的内容可以是声音、图片和视频,可以配置页面背景和颜色,而且还可以自定义多语种的显示,可定制性非常强[ 1, 2]

MegaZine 3是开源的,个人使用是完全免费的,但商业使用需收费,教育或者研究机构使用则需申请Free License,可在其官网提交申请表单或给MegaZine 3的作者Hans J. Nuecke发邮件申请。

MegaZine 3的基本功能特点包括:

(1)开源:非商业免费自由使用;

(2)配置:使用一个完全动态的方法,实现了通过外部XML文件来完成配置,可以配置页面背景和颜色等;

(3)语言:本地化、国际化支持;

(4)简单:允许跳转到每一个页面;

(5)深层链接:集成支持SWFAddress,允许Flash影片深层链接;

(6)页面缓存:不是所有的页面都同时加载到内存,如果网页数量超过一定限额(具体值可手动设置),可进行页面缓存;

(7)配件系统:能够定义图片、Flash电影、视频、声音等页面的元素;

(8)画廊:每个元素可以有一个额外的链接,直接链接到一些图片或SWF,点击时会显示元素具体内容,或者放大元素[ 3]

2.3 PageFlip翻页引擎

PageFlip是一个开源的、可在屏幕上模拟真实书的翻页组件,它是用ActionScript 2.0/3.0编写的Flash应用程序,具有Flash文档的所有特性, 主要应用于嵌入网站中提供在线浏览。PageFlip让读者可通过鼠标拖动或控制按钮来实现翻页,在其源码结构中,可以看出它的每一个页面都是一个MovieClip,可以方便地改动或增减,改动每一个页面内容可以实现内容的个性化,也可以运用Flash的各种效果[ 4, 5]

PageFlip提供了一些二次开发可以使用的函数和变量,如:gotoPage(destinationPageNo)为快速跳到指定页,其中destinationPageNo的值可以是0到最大页;autoflip()为开始自动翻页,翻动方向由鼠标的控制决定;canflip是一个变量,设置是否开启或禁止翻页。

2.4 Flash电子书翻页原理

(1)分 层

将电子书分为三个内容层,叠放顺序如图1所示:

图1 Flash电子书翻页原理[ 6]

第一层为当前页面层,是现在正在显示的页面;第二层是随鼠标拖曳时卷起的页角,第三层是当页角卷起时,露出下一页的层。

(2)设置遮罩

当页边卷起时,层1仅显示四边形FBDE内部分,层2仅显示ABCD部分,层3仅显示BGHD部分。

(3)旋 转

层2内的内容要随着鼠标运动而不停变换倾斜角度,其角度始终与AC边斜度一致。

(4)翻 页

当页面完全翻过时,层1的当前页数=当前页数+1。

程序的核心在于如何获得4个点ABCD的坐标,使用求垂直平分线的方法,即:点C是鼠标位置,点H是页角位置,BD即为此两点间的垂直平分线。由已知的C、H坐标求出直线BD的一次函数y = kx + b,再求出其与FG、EH的切点,得点B、D的坐标,点A是点G于直线BD的对称点,通过求点G对BD的对称点即可得点A的坐标[ 6, 7]

3 虚拟书平台的设计与实现
3.1 虚拟书的制作与发布流程

虚拟书的制作与发布流程大致分为三步,如图2所示:

(1)纸质书籍的电子化,可以是扫描成图片,也可以是手工录入;

图2 虚拟书制作与发布流程

(2)将电子化的资源通过ImageMagick和SWFTools转换为SWF文件,最好是一页对应一个SWF文件,具体转换命令可以到软件官网查阅;

(3)发布,将所有SWF文件复制到MegaZine 3对应的文件夹下,配置基本的显示参数,可以提供在线体验。

3.2 辅助工具

ImageMagick是一个免费的创建、编辑、合成图片的强大图像处理工具包。它可以读取、转换、写入多种格式的图片。可以进行图片切割、颜色替换、各种效果的应用,图片的旋转、组合,文本、直线、多边形、椭圆、曲线附加到图片伸展旋转,它还能制作GIF动画、图像索引,自动生成图像。ImageMagick是一款开源软件,可以自由使用、复制、修改和发布,它遵守GPL协议,并可以运行于大多数的操作系统,它的大多数功能的使用都来源于命令行工具[ 8]

SWFTools是一套支持GPL协议的开源软件,可以用来将PDF文档转换成SWF格式文件,其中还提供其他一些转换的工具,如FONT2SWF、JPEG2SWF、PNG2SWF、WAV2SWF等[ 9, 10, 11]

值得注意的是,这两款软件的安装路径最好不要有中文字符或空格。

3.3 利用MegaZine 3制作虚拟书具体步骤

(1)文件转换

用来转换的文件形式主要是图片、DOC和PDF,如果有其他格式的资源文件,可以先利用ImageMagick的Convert命令或其他软件工具转换为图片,然后将所有图片资源文件,通过Microsoft Word工具转换为PDF文件,再用SWFTools软件的PDF2SWF命令,以一页对应一个SWF文件的方式,将PDF转换为SWF格式文件。

(2)复制发布

图3所示为MegaZine 3手工发布时包含的所有文件,其中data文件夹里放的是特藏资源的所有SWF文件,megazine.mz3文件是展示参数、插件启用的配置文件。将图3中显示的所有文件复制到IIS、Tomcat、Apache等Web服务器的发布根目录即可。

图3 MegaZine 3文件目录结构1

(3)基本配置

MegaZine 3最简单的使用就是自己配置megazine.mz3文件,它的大致结构为:

其中book标签的属性是对虚拟书展示和功能的全局配置,如plugin、pagewidth、pageheight、bgcolor、thumbloadtext、thumbpath、searchmethod、searchindex、cornerhint、startpage、centercovers、lang等,它包含的子标签有background、pagebackground、chapter等;在子标签chapter中,可以通过page标签加入要显示的东西,包括图片、SWF、音视频文件等,甚至还可以通过book标签的pages属性以通配符的形式配置显示所有文件,前提是文件名要有一定的规律[ 12]

关于显示语言的配置,可到http://www.megazine3.de/doc/Localizations网页下载语言包,解压到megazine目录下的langs文件夹里,或者对照langs文件夹下的en文件夹下的XML文件翻译一份也可以,最后还需要在megazine.mz3中book标签的lang属性中增加相应的值,如:zh、en等。

北京大学图书馆利用MegaZine 3发布案例中megazine.mz3文件的一个样例如图4所示:

图4 megazine.mz3文件配置样例

(4)一键生成

一键生成功能由http://www.vservu.com/网站的mz3-tut集成包提供,该集成包还提供了一个Demo例子。一键生成的执行脚本包括:_pdf2mz3.bat、_set_param.bat和_set_version.bat,其中默认情况下只需要执行_set_param.bat即可,执行前最好把特藏资源PDF文件复制到同一目录下,如图5所示:

图5 MegaZine 3文件目录结构2

这种方式发布的文件目录结构与手工发布的有所不同(实际上,还会自动生成一个OldChina_CD文件夹,包含可以作为光盘执行的数据),其中OldChina文件夹是存放特藏资源所有SWF文件和实际使用的megazine.mz3配置文件的目录[ 13, 14, 15, 16]

(5)建立索引

如果资源内容是英文,一键生成可以自动生成索引,但如果内容是中文,一键生成功能则无法生成索引文件,主要是因为MegaZine 3自带的PDF2TXT工具不支持中文字符的解析。为了让中文内容也能实现搜索,笔者研究了MegaZine 3的搜索插件以及它实现搜索的原理。

①在搜索插件(一个PHP脚本)中实现中文字符编码,否则将搜索不到结果,还可能会显示为乱码;

②通过Xpdf[ 17]、PDFBox[ 18]或Adobe Reader将资源对应的PDF文件内容转为TXT文档(若有资源内容的TXT文档最好);

③用一个特殊符号作为每页的分隔符,其中特殊符号可以从英文的索引文档中获取;

④将搜索结果页和实际页匹配上。

3.4 虚拟书平台前端设计与应用效果

(1)前端设计

通过MegaZine 3可以把所有特藏资源发布为虚拟书,但是在线访问的入口是分散的,为此笔者设计了一个虚拟书平台的展示前端。为了让读者有更好的体验,将展示前端设计为书柜的样子,如图6所示:

图6 平台前端展示效果1

整个页面布局主要是利用了HTML的Map标签来实现,并结合使用了JQuery(一款免费且开放源代码的JavaScript代码库,授权协议为GPL和MIT许可证双协议)的Lightbox、Contextmenu、Dragndrop、Msgbox、Boxy等插件。

(2)应用效果

读者可以根据自己的需要,鼠标左击或右击书柜中相应的封面图片,浏览或查看特藏资源的相关信息,如图7所示:

图7 平台前端展示效果2

图8展示了虚拟书的跳转、搜索、翻页、放大等功能。

图8 虚拟书页面展示效果

4 结语

随着技术的不断发展,未来的数字图书馆一定还会有更多的资源类型和更先进的服务方式涌现,而虚拟书也将会是一个很有力的补充。

北京大学图书馆虚拟书平台是一个尝试,虽然笔者对虚拟书技术和开源软件MegaZine 3的研究有限,但借助于MegaZine 3,此平台已可以将特藏资源以非常友好、真实的方式在线展示,并且给读者提供了很好的体验。因此,MegaZine 3 是特藏资源在线展示的一个有效工具,也为其他资源的在线展示提供了参考。

目前,真正可提供在线展示的特藏资源或其他资源还相对较少,因为版权是一个十分敏感的话题,而如何做到两者兼顾是大家极为关注的问题,希望技术的不断进步能够让类似问题迎刃而解。

参考文献
[1] MegaZine3-Open Source PageFlip[EB/OL]. [ 2010-06-02]. MegaZine3-Open Source PageFlip[EB/OL]. [2010-06-02]. http://www.megazine3.de/. [本文引用:1]
[2] MegaZine3 [EB/OL]. [ 2010-06-02]. MegaZine3 [EB/OL]. [2010-06-02]. http://www.megazine3.de/doc/MegaZine3.[3] 免费的Flash Pageflip(书本效果)-MEGAZINE3[EB/OL]. (2010-04-21). [2010-07-23]. http://resource.btxstudio.com/index.php/2010/04/21/519. [本文引用:1]
[4] Free PageFlip 2. 25[EB/OL]. [2010-06-23]. http://www.pageflip.hu/pageflip2/index.php. [本文引用:1]
[5] 最完美的翻页效果: PageFlip V2. 1[EB/OL]. [2010-06-23]. http://space.flash8.net/bbs/thread-240487-1-1.html. [本文引用:1]
[6] Flash电子书翻页效果原理[EB/OL]. [ 2010-07-23]. Flash电子书翻页效果原理[EB/OL]. [2010-07-23]. http://a1f4j7.pixnet.net/blog/post/23334213. [本文引用:1]
[7] Flash 翻书效果研究[EB/OL]. [ 2010-07-23]. Flash 翻书效果研究[EB/OL]. [2010-07-23]. http://www.blueidea.com/tech/multimedia/2003/1198.asp. [本文引用:1]
[8] 关于ImageMagick[EB/OL]. [ 2009-08-19]. 关于ImageMagick[EB/OL]. [2009-08-19]. http://www.imagemagick.com.cn/. [本文引用:1]
[9] SWFTOOLS[EB/OL]. [ 2009-08-19]. SWFTOOLS[EB/OL]. [2009-08-19]. http: //www. swftools.
org/. [本文引用:1]
[10] Flash 工具包 SWFTools[EB/OL]. [ 2009-08-19]. Flash 工具包 SWFTools[EB/OL]. [2009-08-19]. http://www.oschina.net/p/swftools. [本文引用:1]
[11] PDF 转 Flash(SWF)的工具-SWFTools[EB/OL]. [ 2009-08-19]. PDF 转 Flash(SWF)的工具-SWFTools[EB/OL]. [2009-08-19]. http://homeserver.com.tw/%E7%86%B1%E9%96%80%E6%9B%B8%E7%B1%A4/swftools/. [本文引用:1]
[12] megazine_documentation_en[EB/OL]. [ 2010-11-21]. megazine_documentation_en[EB/OL]. [2010-11-21]. http://360doc.s3.amazonaws.com/megazine_documentation_en.pdf. [本文引用:1]
[13] VservU: MegaZine3[EB/OL]. [2010-06-23]. http://vservu.de. [本文引用:1]
[14] MegaZine3 PageFlip Engine V2. 0[EB/OL]. [2010-11-21]. http://vservu.de/mz3/tut/Tut%20Intro2.pdf. [本文引用:1]
[15] MegaZine3 User Manual and Introduction[EB/OL]. [ 2010-11-21]. MegaZine3 User Manual and Introduction[EB/OL]. [2010-11-21]. http://vservu.de/mz3-tut/mz3_user_en.pdf. [本文引用:1]
[16] MegaZine3 Tutorial for Producers of MegaZine3 Books[EB/OL]. [ 2010-11-21]. MegaZine3 Tutorial for Producers of MegaZine3 Books[EB/OL]. [2010-11-21]. http://vservu.de/mz3-tut/mz3_producer_en.pdf. [本文引用:1]
[17] Xpdf : A PDF Viewer for X[EB/OL]. [2010-11-20]. http://foolabs.com/xpdf/. [本文引用:1]
[18] Apache PDFBox-Java PDF Library[EB/OL]. [ 2010-11-20]. Apache PDFBox-Java PDF Library[EB/OL]. [2010-11-20]. http://pdfbox.apache.org/. [本文引用:1]