今天在网上看到一个关于pdf在线阅读系统实现思路,突发的对这个特别有兴趣,所以就在网上东搜搜,西找找的,查找了一些资料。发现实现这个功能需要这些第三方插件。
1. OpenOffice,jodconverter 用于转换 doc,ppt,txt..至pdf格式文件
2.SWFTools 用与将pdf文件转换成swf文件,主要用到SWFTools里面的pdf2swf.exe这个工具
3.FlexPaper 用于在浏览器中显示所转换得到的swf文件,用这个显示效果比较好。
一。下载安装OpenOffice,这个可以直接在SUN官网上下载,安装好后,需要启动OpenOffice服务,启动过程是:启动命令界面,转到OpenOffice安装目录下的program目录下,
输入“soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard”回车即可启动OpenOffice服务,然后下载jodconverter ,将jar包导入。
下面是实现转换成pdf的代码
1 try { 2 File inputFile = new File("D:\\1.doc"); 3 File outputFile = new File("D:\\11.pdf"); 4 5 OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100); 6 connection.connect(); 7 DocumentConverter converter = new OpenOfficeDocumentConverter(connection); 8 converter.convert(inputFile, outputFile); 9 connection.disconnect(); 10 } catch (ConnectException e) { 11 // TODO Auto-generated catch block 12 e.printStackTrace(); 13 }
二。下载 SWFTools 工具包,利用Process pro = Runtime.getRuntime().exec("pdf2swf -11.pdf -o 111.swf");这样就可以转换pdf文件为swf文件了。
三。下载FlexPaper,用户显示swf文件显示代码如下
1 <script type="text/javascript" src="js/swfobject/swfobject.js"></script> 2 <script type="text/javascript"> 3 var swfVersionStr = "10.0.0"; 4 var xiSwfUrlStr = "playerProductInstall.swf"; 5 var flashvars = { 6 SwfFile : escape("111.swf"), 7 Scale : 0.6, 8 ZoomTransition : "easeOut", 9 ZoomTime : 0.5, 10 ZoomInterval : 0.1, 11 FitPageOnLoad : false, 12 FitWidthOnLoad : true, 13 PrintEnabled : true, 14 FullScreenAsMaxWindow : false, 15 ProgressiveLoading : true, 16 17 PrintToolsVisible : true, 18 ViewModeToolsVisible : true, 19 ZoomToolsVisible : true, 20 FullScreenVisible : true, 21 NavToolsVisible : true, 22 CursorToolsVisible : true, 23 SearchToolsVisible : true, 24 localeChain: "zh_CN" 25 }; 26 27 var params = { 28 29 } 30 params.quality = "high"; 31 params.bgcolor = "#ffffff"; 32 params.allowscriptaccess = "sameDomain"; 33 params.allowfullscreen = "true"; 34 var attributes = {}; 35 attributes.id = "FlexPaperViewer"; 36 attributes.name = "FlexPaperViewer"; 37 swfobject.embedSWF( 38 "FlexPaperViewer.swf", "flashContent", 39 "780", "650", 40 swfVersionStr, xiSwfUrlStr, 41 flashvars, params, attributes); 42 swfobject.createCSS("#flashContent", "display:block;text-align:left;"); 43 </script> 44 45 <div id="flashContent"> </div>
至此就可以顺利显示用户上传的doc文件或ppt文件等等。
------------------完-------------------