Java实现文档在线阅读_第1页
Java实现文档在线阅读_第2页
Java实现文档在线阅读_第3页
Java实现文档在线阅读_第4页
Java实现文档在线阅读_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java平台要实现类似豆丁百度文科的文档在线阅读,总体思路是讲docdocx等文件格式利用openoffice转换成pdf再用swftools转为swf。再用flexpaper组件显示swf。

此过程涉及软件(实测)

openoffice3.2(window)

swftools-2011-01-23-1815.exe(window)

openoffice3.1.1(linux)

swftools-2011-01-23-1815.tar.gz(linux)

jar包jodconverter-2.2.2(里面lib目录下含多个要用到的jar文件)

flexpaper1.4.0(直接复制过来,项目上运行成功,本地运行还没成功)

FlexPaper_1.4.5_flash(网上下载的最新版本没试过,二选一即可)

附上自己写的java转换DemoDocConverter.java

importjava.io.BufferedInputStream;

importjava.io.File;

importjava.io.IOException;

importjava.io.InputStrem;

importcom.artofsolving.jodconverter.DocumentConverter;

importcom.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;

importcom.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;

importcom.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter;

/**

*docdocx格式转换

*@authorAdministrator

*

*/

publicclassDocConverter{

privatestaticfinalintenvironment=1;//环境1:windows2:linux(只涉及pdf2swf路径问题)

privateStringfileString;

privateStringoutputPath="";//输入路径,如果不设置就输出在默认的位置

privateStringfileName;

privateFilepdfFile;

privateFileswfFile;

privateFiledocFile;

publicDocConverter(StringfileString){

ini(fileString);

}

/**

*重新设置file

*@paramfileString

*/

publicvoidsetFile(StringfileString){

ini(fileString);

}

/**

*初始化

*@paramfileString

*/

privatevoidini(StringfileString){

this.fileString=fileString;

fileName=fileString.substring(0,fileString.lastIndexOf("."));

docFile=newFile(fileString);

pdfFile=newFile(fileName+".pdf");

swfFile=newFile(fileName+".swf");

}

/**

*转为PDF

*@paramfile

*/

privatevoiddoc2pdf()throwsException{

if(docFile.exists()){

if(!pdfFile.exists()){

OpenOfficeConnectionconnection=newSocketOpenOfficeConnection(8100);

try{

connection.connect();

DocumentConverterconverter=newOpenOfficeDocumentConverter(connection);

converter.convert(docFile,pdfFile);

//closetheconnection

connection.disconnect();

System.out.println("****pdf转换成功,PDF输出:"+pdfFile.getPath()+"****");

}catch(.ConnectExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

System.out.println("****swf转换器异常,openoffice服务未启动!****");

throwe;

}catch(com.artofsolving.jodconverter.openoffice.connection.OpenOfficeExceptione){

e.printStackTrace();

System.out.println("****swf转换器异常,读取转换文件失败****");

try{

doc2pdf();

pdf2swf();

}catch(Exceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

returnfalse;

}

if(swfFile.exists()){

returntrue;

}else{

returnfalse;

}

}

/**

*返回文件路径

*@params

*/

publicStringgetswfPath(){

if(swfFile.exists()){

StringtempString=swfFile.getPath();

tempString=tempString.replaceAll("\\\\","/");

returntempString;

}else{

return"";

}

}

/**

*设置输出路径

*/

publicvoidsetOutputPath(StringoutputPath){

this.outputPath=outputPath;

if(!outputPath.equals("")){

StringrealName=fileName.substring(fileName.lastIndexOf("/"),fileName.lastIndexOf("."));

if(outputPath.charAt(outputPath.length())=='/'){

swfFile=newFile(outputPath+realName+".swf");

}else{

swfFile=newFile(outputPath+realName+".swf");

}

}

}

publicstaticvoidmain(Strings[]){

DocConverterd=newDocConverter("D:/data/FTP/midlongforecast/midweatherforecast/20010202.xml");

d.conver();

}

}

以上即是所有用到的转换需要用到的文件

windows安装过程省略,linux下安装swftools命令

解压到目录后

./configure

make

makeinstall

无论在哪个平台安装完以上两个软件后

需要在将openoffice以服务方式启动

Window启动方式

cdC:\ProgramFiles\OpenO3\program

soffice-headless-accept="socket,host=,port=8100;urp;"–nofirststartwizard

Linux启动

soffice

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论