知识库中文档在线预览功能的实现

点赞:15926 浏览:69303 近期更新时间:2024-02-04 作者:网友分享原创网站原创

摘 要:针对知识库中查看附件中的文档,采用JODConverter和OpenOffice将Txt、Word、Excel、PPT格式的文件转换为PDF文件,通过PDF2SWF工具将PDF文件转换为SWF文件,使用FlashPlayer在页面显示,实现在线预览功能.

关 键 词 :在线预览;OpenOffice;JodConverter;FlashPlayer

中图分类号:TP319

知识库采用web编辑器进行在线编辑文档时,对图片、表格的编辑会出现乱码.文献[1-2]采用FlashPaper虚拟打印功能将文档转换为swf格式实现预览.文献[3-4]研究了基于Docbook规范的文档格式转换工具的设计与实现.然而文献[1]缺乏对PDF文档的转换,文献[2]转换文档需按照其规定的格式进行编写,为了解决以上问题,本文通过OpenOffice与JodConverter实现Txt、Word、Excel、PPT格式文档的在线预览.

1.文档预览方案

知识库中文档以附件的形式上传后,以flash的形式在网页上展示.文档需要先转化为pdf,再从pdf转化为flash.本文采用JODConverter和OpenOffice将Txt、Word、Excel、PPT格式的文件转换为PDF文件,再通过SWFTools中的PDF2SWF工具将PDF文件转换为SWF文件,最终在页面显示,实现在线预览功能.OpenOffice 是一套跨平台的办公室软件套件,能在Windows、Linux等操作系统上执行.它与各个主要的办公室软件套件兼容,支持XML、微软的Word、Excel、PPT文件等格式.为了把文档转换PDF格式,需将openoffice.变成一个转换引擎,可以通过网络接口或命令行工具对文件的格式进行转换.JODConverter能够将Word、Excel、PPT转换PDF.SWFTools是一种与Adobe Flash(SWF)文件工作的实用工具包,主要包括用于读取、编译以及生成SWF文件的程序.其中,PDF2SWF工具可以将PDF文件转换成SWF文件.FlexPlayer是一款高性能的、轻量型且极具表现力的客户端运行时,能够在各种主流操作系统、浏览器上使用,使得在没有安装PDF阅读器软件的情况下浏览PDF文件成为可能.本文采用Ja语言对其进行编程实现,具有与Ja语言相同的跨平台性,可在不同的操作系统上运行.

知识库中文档在线预览功能的实现参考属性评定
有关论文范文主题研究: 关于操作系统的论文例文 大学生适用: 专升本毕业论文、学位论文
相关参考文献下载数量: 72 写作解决问题: 如何写
毕业论文开题报告: 标准论文格式、论文前言 职称论文适用: 论文发表、初级职称
所属大学生专业类别: 如何写 论文题目推荐度: 经典题目

2.实现步骤

2.1 用JODConverter调用OpenOffice.怎么写作转换文档为PDF格式

首先,启动OpenOffice怎么写作.设定DefaultOfficeManagerConfiguration相关参数,并得到OfficeManager.调用OfficeManager实现类的start方法启动怎么写作.主要代码如下:

DefaultOfficeManagerConfiguration configuration 等于

new DefaultOfficeManagerConfiguration();

configuration.setOfficeHome(OPENOFFICE_HOME);// OPENOFFICE_HOME为OpenOffice.安装目录

configuration.setPortNumbers(port); // OpenOffice.实例运行的端口号,默认为8100

officeManager 等于 configuration.buildOfficeManager();

officeManager.start(); //启动怎么写作

其次,将doc、ppt、excele、txt转化为pdf文档.

初始化OfficeDocumentConverter并调用其convert方法执行文档转化.主要代码如下:

OfficeDocumentConverter converter 等于 new

OfficeDocumentConverter(officeManager);

converter.convert(new File(inputFile),new File(pdfFile));

//inputFile(pdfFile)为文档(生成的pdf文档)存放的据对路径(包含文件后缀).

最后,停止OpenOffice怎么写作.调用OfficeManager实现类的stop方法停止怎么写作.

2.2 用SWFTools转换PDF文档为SWF格式

PDF2SWF提供了命令行参数,我们可以通过Ja的Runtime和Process调用PDF2SWF提供的命令将PDF转为SWF.

首先,创建PDF2SWF转换命令字符串.

toolPath -t sourcePath -o swfPath -s flashversion等于9

其中toolpath为pdf2swf.exe的据对路径,sourcePath 为准备转换的pdf文件的绝对路径,swfPath为转换后的swf文件存放的据对路径.flashversion等于9的设置可以保证转换后的文件可以用flexpaper播放.

其次,获得当前运行时Runtime,调用上一步中的转换命令进行转换.

2.3 用FlexPaper显示SWF

将下载好的FlexPaper中的js文件夹和FlexPaperViewer.swf文件拷贝到项目目录下,根据FlexPaper项目中演示demo设置相应的参数即可完成swf文件的播放. 这样在线预览功能得以实现.

3.关键技术解析

3.1 乱码问题

转换文档的时候出现中文乱码.这是因为文档的编码格式为GB2312,文件写入时的编码为UTF-8,因为读取文件的编码格式与文件写入的编码格式不同.可以在读文件内容是通过Ja代码将读出的文件内容以UTF-8格式保存,这样再写入该格式的文件是就不会出现乱码问题了.

3.2 swf文件无法播放

使用SWFTools生成的swf文件无法播放,页面一直处于正加载状态.这是由于Flexpaper还没获得Adobe Flash的信任,此时需在Adobe把存放swf文件的文件夹夹添加到信任列表中.

3.3 多附件上传时导致文档转换时间过长

由于每一次的文档转换都需要启动、关闭OpenOffice软件,多附件上传时频繁的开启关闭系统,造成资源的浪费,导致转换时间过长.这时可以先进行文档上传操作,最后对上传的全部文档进行统一转换,这样只需开启一次OpenOffice软件,节省了转换时间.

4.结束语

本文提供了一种常用文档(Txt、Word、Excel、PPT)在线预览功能的实现方式,实现了跨平台应用,从而节省了多平台开发时间.将文档预览功能应用于知识库,对其中的文档进行转换处理后,当用户获取以文档形式存在的知识时,可以省去其下载的时间,在客户端也无需加装任何软件,方便用户浏览,从而加快知识的传播与应用.