陈引迪,李隐峰
(西安电子科技大学 电子信息工程学院,陕西 西安 710071)
随着信息技术的快速发展和互联网的普及,越来越多的用户选择在网络上分享喜欢的文档。然而,目前的网络分享平台,诸如网络硬盘、论坛等都无法在线浏览用户上传的文档内容,当其他用户要阅读文档时,必须先将文档下载到本地电脑,然后使用相应格式的阅读软件打开,这导致用户经常下载了不符合需求的文档,造成了用户时间和网站服务器资源的双重浪费。
构建了一个集文档上传、格式转换、在线浏览于一身的文档在线浏览系统[1-2]。详细分析了系统的功能性需求及架构,同时介绍了系统实现中所用到的框架、开源软件及脚本语言等信息。
系统主要由文档上传、文档格式转换和文档在线浏览3 部分组成:(1)文档上传。用户首先在本系统注册,登录系统后可在文档上传页面填写文档名称、关键词、摘要、类别、售价等信息,然后上传文档附件,得到系统上传成功的反馈后关闭页面即可。(2)文档格式转换。系统在接收到用户上传文档后开始进行文档在线转换,转换过程将在下文详细描述。(3)文档在线浏览。文档经过格式转换后,系统利用FlexPaper 开源组件[1]实现文档的在线浏览,用户可在文档浏览界面对该文档进行评价及评分。
系统基于ThinkPHP 框架开发而成。ThinkPHP 是一个原创的、性能卓越、开发便捷高效的PHP 开发框架,其宗旨是利用有限的代码完成最多的功能,使得开发过程更高效、简单、有趣。
作为一个网络系统开发框架,ThinkPHP 可以满足开发者在系统开发过程中所遇到的绝大部分需求,它包括独立的底层架构、兼容性处理、基类库、数据库访问层、模板引擎、缓存处理机制、插件应用机制、角色认证机制及表单自动处理等常用组件,也可方便地在不同平台、不同版本的环境中开发,并可在开发过程中访问不同数据库[3-5]。在开发过程中,开发者只需要关心系统业务逻辑和数据的处理。ThinkPHP 集成了大多数框架的功能,可以使用ThinkPHP 完成整个系统的开发,无需使用多个框架结合开发。
文档在线转换所使用的工具包括WPS Office、PDF2SWF,利用PHP 嵌入式脚本语言调用上述工具可完成文档格式的实时转换。
编辑系统(Word Processing System,WPS),是金山软件公司的一种办公软件。WPS 能提供COM 组件,用户可使用多种编程语言调用其组件进行各种文档格式间的转换[6]。
作为一个免费的文档编辑系统,WPS Office 比MS Office 有以下优点:兼容并提升办公效率:文档在高度兼容的基础上创新,更好地适应企业办公信息化需求。
(1)有利于信息化发展。企业信息化是企业迎接新挑战的重要工具,专业的软件公司可以为企业提供更务实、准确的建议和支持配合。
(2)有保障的售后服务技术支持。公司强大的售后服务和技术支持,真正使办公软件发挥办公信息化的作用,提升企业整体办公效率、安全、发展。
SWFTools 是一种实用工具与swf 文件工作的集合,该工具集包括用于阅读的swf 文件,以及结合他们建立的其他程序。PDF2SWF 是其下一个将pdf 文件创建为数字化翻页杂志的工具。可将清晰地pdf 文档变成数码杂志,且翻动内容的过程与纸质书一样,创建的所有文件都由html、xml 和swf 文件组成,可发布到网络[7-8]。
文档格式转换分为两步:将word、excel、ppt 等Office文件转换为pdf 文件,及pdf 文件转换为swf 文件。
2.3.1 Office 文档转换为pdf 文件
使用PHP 调用WPS 的COM 组件,可将word、excel、ppt 等MS Office 文档在线转换为WPS Office 格式,并继续转换为pdf 文件[2]。具体代码如下:
(1)Word 文档(doc、docx、rtf、wps)格式转换代码如图1 所示。
图1 Word 文档格式转换
(2)Excel 文档(xls、xlsx、et)和ppt 文档(ppt、pptx、dps)格式转换代与之类似。
2.3.2 pdf 文件转换为swf 文件
考虑到服务器压力和用户体验的问题,本文放弃了在线实时转换文档格式的方案,选择了在后台将pdf文件转换为swf 文件[2]。具体过程如下:
(1)编写pdf2swf.php 文件,读取数据库中未转换为swf 文件的pdf 的信息,并写入a.bat 文件,代码如图2所示。
图2 pdf2swf.php 内容
(2)编写pdf2swf.bat 文件,利用Windows 计划任务功能,定时执行pdf2swf.php,文件内容如图3 所示。
图3 pdf2swf.bat 内容
(3)定义计划任务定时执行a.bat,利用cmd 命令行调用pdf2swf.exe,生成swf 文件,如图4 所示。
图4 cmd 命令行调用pdf2swf.exe
文档格式转换完成后,系统将调用FlexPaper 开源组件读取相应swf 文件,并在文档浏览页面显示文档内容。文档在线显示效果如图5 所示。
图5 文档在线浏览效果
文中介绍了如何将Office 文件转换为swf 文件,并利用FlexPaper 组件在线显示。此方法有效减少了服务器资源占用,提高了用户体验满意度,可应用于大型文档共享网站文档在线浏览的实现,具有较强的实用性。
[1] 百度百科.FlexPaper[EB/OL].(2011-03-24)[2012-05-06]http://baike.baidu.com/view/3948797.htm.
[2] 在线文档显示组件.FlexPaper[EB/OL].(2010-01-05)[2012-06-07]http://www.oschina.net/p/flexpaper.
[3] DevaldiLtd.FlexPaper[EB/OL].(2010-12-01)[2012-06-07]http://flexpaper.devaldi.com/Docs.html.
[4] 冀明.Web 文档的首选语言[J].电子科技,2001(9):30-31.
[5] 王显斌.DSpace 系统在线浏览功能的实现[J].数字技术与应用,2013(6):186-187.
[6] 李秋玲,李宁,田英爱.基于Web Service 的办公文档格式安全转换服务[J].北京信息科技大学学报:自然科学版,2013,28(1):56-61.
[7] 苏中,马少平,杨强,等.基于Web-Log Mining 的Web 文档聚类[J].软件学报,2002,13(1):99-104.
[8] 董斌,陈进哲,张瑜.基于本体的Web 文档知识获取的框架研究[J].计算机与信息技术,2008(7):15-16,19.