Java仿文库的基本方法(openoffice+swftools+flexPaper)
java仿文库的基本方法
基本步骤:
1、将要展示的office文件 转换成 pdf, 使用工具 openoffice
2、将pdf文件转换成swf ,实用工具swftools
3、使用flexpaper,显示转换后的swf文件。
基础代码:没有任何校验
1、openoffice转换pdf
下载地址:
实用工具: jodconverter-2.2.2 引入所需jar,直接将所有jar都扔进来了
首先、下载openoffice软件,并安装,使用dos命令开启服务,就是cmd了,我安装在了c盘
命令如下:执行效果
c:\program files (x86)\openoffice 4\program>soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard
启动后,执行以下命令 doc文件为原始文件,转换成pdf
file inputfile = new file("d:\\大数据及应用.doc"); file outputfile = new file("d:\\大数据及应用.pdf"); openofficeconnection connection = new socketopenofficeconnection( "127.0.0.1", 8100); connection.connect(); // convert documentconverter converter = new openofficedocumentconverter( connection); converter.convert(inputfile, outputfile); // close the connection connection.disconnect();
2、swftools将pdf转换swf
下载地址:
首先安装swftools工具,我是windows 下载exe文件,直接安装,
注:文件夹不要有空格,有空格不识别 如 program file 文件夹下 不好使
我安装在了d盘根目录下,该方法来源于网络,资料找的太多不记得从哪位大侠哪拷来得了,
还要注意下面代码被我改成windows的命令了,linux不生效。
public static int convertpdf2swf(string sourcepath, string destpath, string filename) throws ioexception { //目标路径不存在则建立目标路径 file dest = new file(destpath); if (!dest.exists()) dest.mkdirs(); //源文件不存在则返回 file source = new file(sourcepath); if (!source.exists()) return 0; //调用pdf2swf命令进行转换 string command = "d:\\swftools\\pdf2swf.exe " + sourcepath + " -o " + destpath + filename + " -f -t 9 " ; system.out.println(command); process pro = runtime.getruntime().exec(command); bufferedreader bufferedreader = new bufferedreader(new inputstreamreader(pro.getinputstream())); while (bufferedreader.readline() != null); try { pro.waitfor(); } catch (interruptedexception e) { // todo auto-generated catch block e.printstacktrace(); } return pro.exitvalue(); }
4、flexpaper显示swf
下载地址:http://static.devaldi.com/gpl/flexpaper_2.2.4.zip
jsp代码如下
该文件:flexpaperviewer.swf
<!--首先要引入jquery库及相关的js 下载包里面 找--> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/flexpaper_flash.js"></script> <script type="text/javascript" src="js/flexpaper_flash_debug.js"></script>
body内如下
<div style="position:absolute;left:10px;top:10px;"> <a id="viewerplaceholder" style="width:1260px;height:780px;display:block"></a> <script type="text/javascript"> var fp = new flexpaperviewer( 'flexpaperviewer', 'viewerplaceholder', <!--对应于a 标签的id--> { config : { swffile : decodeuri('aaa.swf'), <!--引入的swf文件,decodeuri 解决中文文件名问题--> scale : 0.6, zoomtransition : 'easeout', zoomtime : 0.5, zoominterval : 0.2, fitpageonload : true, fitwidthonload : false, printenabled : true, fullscreenasmaxwindow : false, progressiveloading : false, minzoomsize : 0.2, maxzoomsize : 5, searchmatchall : false, initviewmode : 'portrait', viewmodetoolsvisible : true, zoomtoolsvisible : true, navtoolsvisible : true, cursortoolsvisible : true, searchtoolsvisible : true, localechain: 'zh_cn' <!--改成这个显示中文--> }}); </script> </div>
执行效果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。