摘要 仿百度文库的基本功能,写的比较粗糙,只记录基本过程和步骤javascript
基本步骤:html
一、将要展现的office文件 转换成 PDF, 使用工具 openoffice 二、将PDF文件转换成swf ,实用工具swftools 三、使用flexPaper,显示转换后的swf文件。
基础代码:没有任何校验java
一、openoffice转换pdf 下载地址:https://www.openoffice.org/zh-cn/ 实用工具: jodconverter-2.2.2 引入所需jar,直接将全部jar都扔进来了 首先、下载openOffice软件,并安装,使用dos命令开启服务 命令以下:
我安装在了 C:\Program Files (x86) 目录下jquery
C:\Program Files (x86)\OpenOffice 4\program>soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizardlinux
启动后,执行如下命令 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();windows
// convert
DocumentConverter converter = new OpenOfficeDocumentConverter( connection); converter.convert(inputFile, outputFile);网络
// close the connection connection.disconnect();less
二、swftools将PDF转换swf 下载地址:http://www.swftools.org/download.html 首先安装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();
}socket
四、flexPaper显示swf 下载地址:http://static.devaldi.com/GPL/FlexPaper_2.2.4.zip jsp代码以下 该文件:FlexPaperViewer.swf
<!--首先要引入jquery库及相关的js 下载包里面 找-->jsp
<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>
执行效果