收藏 分享(赏)

java flexpaper swftools_仿百度文库文档在线预览系统设计与实现.docx

上传人:无敌 文档编号:697517 上传时间:2018-04-18 格式:DOCX 页数:16 大小:182.69KB
下载 相关 举报
java flexpaper swftools_仿百度文库文档在线预览系统设计与实现.docx_第1页
第1页 / 共16页
java flexpaper swftools_仿百度文库文档在线预览系统设计与实现.docx_第2页
第2页 / 共16页
java flexpaper swftools_仿百度文库文档在线预览系统设计与实现.docx_第3页
第3页 / 共16页
java flexpaper swftools_仿百度文库文档在线预览系统设计与实现.docx_第4页
第4页 / 共16页
java flexpaper swftools_仿百度文库文档在线预览系统设计与实现.docx_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、Java FlexPaper swfTools_仿百度文库文档在线预览系统设计与实现最近在给客户开发文档管理系统时,客户要求上传到管理系统的文档(包括ppt,word ,excel ,txt)只能预览不允许下载。想到了百度文库和豆丁网,百度文库和豆丁网的在线预览都是利用 flash 来播放文档的,在网上查阅了大量资料,终于实现了该项功能,现将自己的设计和实现整理如下,自己可以试试。一、如何将文档转成 flash 支持的 swf 文件实现在线播放?1.先用 openOffice 把 ppt、 word、excel、txt 类型的文档转换成 pdf2.用 swftools 将 pdf 转换成 sw

2、f,然后利用 FlexPaper 插件实现在线播放预览。二、具体实现1.安装必备工具组件(1)安装 openoffice,openoffice 是开源免费的文字处理软件,它可以将 office 文档转成 pdf 文件(笔者安装到 D:Program Files),openOffice 下载地址http:/www.openoffice.org/download/index.html(2)安装完 openoffice 后必须启动其 server,以命令行方式启动 openoffice server。进入 cmd 命令行提示符 D:Program FilesOpenOffice.org 3progr

3、am键入如下命令:soffice -headless -accept=“socket,host=127.0.0.1,port=8100;urp;“ nofirststartwizard进入 windows 任务管理器查看有个进程 soffice.bin,说明 openoffice 启动成功!(3)安装 swfTools(安装到 D:Program Files)swftools 作用是将 pdf 转换为 swf文件以便 flexpaper 播放。下载地址:http:/www.swftools.org/download.html(4)下载 flexpaper,下载地址:http:/ FlexPap

4、er_1.5.1,下载后将其解压备用。(5)下载 OpenDocument 文档转换器 JODConverter,JODConverter 是一个 java的 OpenDucument 文件转换器,可以进行许多文件格式的转换,它利用OpenOffice 来进行转换工作,它能进行以下的转换工作:a.Microsoft Office 格式转换为 OpenDucument,以及 OpenDucument 转换为Microsoft Officeb.OpenDucument 转换为 PDF,Word 、Excel、PowerPoint 转换为 PDF,RTF 转换为 PDF 等。下载地址:http:/

5、jodconverter-2.2.2.jar 包2.软件开发过程(1)启动 Eclipse,新建 web 项目名称为 ctcesims(2)将上面第 4 步解压的 flexpaper 文件中的 js 文件夹( 包含了flexpaper_flash_debug.js,flexpaper_flash.js,jquery.js,这三个 js 文件主要是预览swf 文件的插件)拷贝至网站根目录; 将 FlexPaperViewer.swf 拷贝至网站根目录下(该文件主要是用在网页中播放 swf 文件的播放器),目录结构如下图(3)创建 documentUpload.jsp 文件html view pl

6、aincopy1. 3. 4. 5. 6. 7. 文档在线预览系统 8. 9. body margin-top:100px;background:#fff;font-family: Verdana, Tahoma; 10. a color:#CE4614; 11. #msg-box color: #CE4614; font-size:0.9em;text-align:center; 12. #msg-box .logo border-bottom:5px solid #ECE5D9;margin-bottom:20px;padding-bottom:10px; 13. #msg-box .ti

7、tle font-size:1.4em;font-weight:bold;margin:0 0 30px 0; 14. #msg-box .nav margin-top:20px; 15. 16. 17. 18. 19. 20. 21. 22. 请上传要处理的文件,过程可能需要几分钟,请稍候片刻。 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. (4)创建文档转换类 DocConverter.javajava view plaincopy1. package com.cectsims.util; 2. import java.io.BufferedInp

8、utStream; 3. import java.io.File; 4. import java.io.IOException; 5. import java.io.InputStream; 6. 7. import com.artofsolving.jodconverter.DocumentConverter; 8. import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection; 9. import com.artofsolving.jodconverter.openoffice.connect

9、ion.SocketOpenOfficeConnection; 10.import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter; 11. 12./* 13. * doc docx 格式转换 14. */ 15.public class DocConverter 16. private static final int environment = 1;/ 环境1:windows 2:linux 17. private String fileString;/ (只涉及 pdf2swf

10、路径问题) 18. private String outputPath = “;/ 输入路径 ,如果不设置就输出在默认的位置 19. private String fileName; 20. private File pdfFile; 21. private File swfFile; 22. private File docFile; 23. 24. public DocConverter(String fileString) 25. ini(fileString); 26. 27. 28. /* 29. * 重新设置 file 30. * 31. * param fileString 32

11、. */ 33. public void setFile(String fileString) 34. ini(fileString); 35. 36. 37. /* 38. * 初始化 39. * 40. * param fileString 41. */ 42. private void ini(String fileString) 43. this.fileString = fileString; 44. fileName = fileString.substring(0, fileString.lastIndexOf(“.“); 45. docFile = new File(fileS

12、tring); 46. pdfFile = new File(fileName + “.pdf“); 47. swfFile = new File(fileName + “.swf“); 48. 49. 50. /* 51. * 转为 PDF 52. * 53. * param file 54. */ 55. private void doc2pdf() throws Exception 56. if (docFile.exists() 57. if (!pdfFile.exists() 58. OpenOfficeConnection connection = new SocketOpenO

13、fficeConnection(8100); 59. try 60. connection.connect(); 61. DocumentConverter converter = new OpenOfficeDocumentConverter(connection); 62. converter.convert(docFile, pdfFile); 63. / close the connection 64. connection.disconnect(); 65. System.out.println(“*pdf 转换成功,PDF 输出:“ + pdfFile.getPath()+ “*“

14、); 66. catch (.ConnectException e) 67. e.printStackTrace(); 68. System.out.println(“*swf 转换器异常,openoffice服务未启动!*“); 69. throw e; 70. catch (com.artofsolving.jodconverter.openoffice.connection.OpenOfficeException e) 71. e.printStackTrace(); 72. System.out.println(“*swf 转换器异常,读取转换文件失败*“ ); 73. throw e

15、; 74. catch (Exception e) 75. e.printStackTrace(); 76. throw e; 77. 78. else 79. System.out.println(“*已经转换为 pdf,不需要再进行转化*“); 80. 81. else 82. System.out.println(“*swf 转换器异常,需要转换的文档不存在,无法转换*“); 83. 84. 85. 86. /* 87. * 转换成 swf 88. */ 89. SuppressWarnings(“unused“) 90. private void pdf2swf() throws Ex

16、ception 91. Runtime r = Runtime.getRuntime(); 92. if (!swfFile.exists() 93. if (pdfFile.exists() 94. if (environment = 1) / windows 环境处理 95. try 96. Process p = r.exec(“D:/Program Files/SWFTools/pdf2swf.exe “+ pdfFile.getPath() + “ -o “+ swfFile.getPath() + “ -T 9“); 97. System.out.print(loadStream(

17、p.getInputStream(); 98. System.err.print(loadStream(p.getErrorStream(); 99. System.out.print(loadStream(p.getInputStream(); 100. System.err.println(“*swf 转换成功,文件输出:“ 101. + swfFile.getPath() + “*“); 102. if (pdfFile.exists() 103. pdfFile.delete(); 104. 105. 106. catch (IOException e) 107. e.printSta

18、ckTrace(); 108. throw e; 109. 110. else if (environment = 2) / linux 环境处理 111. try 112. Process p = r.exec(“pdf2swf “ + pdfFile.getPath() 113. + “ -o “ + swfFile.getPath() + “ -T 9“); 114. System.out.print(loadStream(p.getInputStream(); 115. System.err.print(loadStream(p.getErrorStream(); 116. Syste

19、m.err.println(“*swf 转换成功,文件输出:“ 117. + swfFile.getPath() + “*“); 118. if (pdfFile.exists() 119. pdfFile.delete(); 120. 121. catch (Exception e) 122. e.printStackTrace(); 123. throw e; 124. 125. 126. else 127. System.out.println(“*pdf 不存在,无法转换*“ ); 128. 129. else 130. System.out.println(“*swf 已经存在不需要

20、转换*“); 131. 132. 133. 134. static String loadStream(InputStream in) throws IOException 135. 136. int ptr = 0; 137. in = new BufferedInputStream(in); 138. StringBuffer buffer = new StringBuffer(); 139. 140. while (ptr = in.read() != -1) 141. buffer.append(char) ptr); 142. 143. 144. return buffer.toSt

21、ring(); 145. 146. /* 147. * 转换主方法 148. */ 149. SuppressWarnings(“unused“) 150. public boolean conver() 151. 152. if (swfFile.exists() 153. System.out.println(“*swf 转换器开始工作,该文件已经转换为 swf*“); 154. return true; 155. 156. 157. if (environment = 1) 158. System.out.println(“*swf 转换器开始工作,当前设置运行环境 windows*“)

22、; 159. else 160. System.out.println(“*swf 转换器开始工作,当前设置运行环境 linux*“); 161. 162. try 163. doc2pdf(); 164. pdf2swf(); 165. catch (Exception e) 166. e.printStackTrace(); 167. return false; 168. 169. 170. if (swfFile.exists() 171. return true; 172. else 173. return false; 174. 175. 176. 177. /* 178. * 返回

23、文件路径 179. * 180. * param s 181. */ 182. public String getswfPath() 183. if (swfFile.exists() 184. String tempString = swfFile.getPath(); 185. tempString = tempString.replaceAll(“, “/“); 186. return tempString; 187. else 188. return “; 189. 190. 191. 192. /* 193. * 设置输出路径 194. */ 195. public void set

24、OutputPath(String outputPath) 196. this.outputPath = outputPath; 197. if (!outputPath.equals(“) 198. String realName = fileName.substring(fileName.lastIndexOf(“/“), 199. fileName.lastIndexOf(“.“); 200. if (outputPath.charAt(outputPath.length() = /) 201. swfFile = new File(outputPath + realName + “.swf“);202. else 203. swfFile = new File(outputPath + realName + “.swf“);204. 205. 206. 207. 208.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 大学论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报