收藏 分享(赏)

java实现仿百度文库、豆丁在线阅读.doc

上传人:Facebook 文档编号:4295946 上传时间:2018-12-21 格式:DOC 页数:9 大小:549.50KB
下载 相关 举报
java实现仿百度文库、豆丁在线阅读.doc_第1页
第1页 / 共9页
java实现仿百度文库、豆丁在线阅读.doc_第2页
第2页 / 共9页
java实现仿百度文库、豆丁在线阅读.doc_第3页
第3页 / 共9页
java实现仿百度文库、豆丁在线阅读.doc_第4页
第4页 / 共9页
java实现仿百度文库、豆丁在线阅读.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、java 仿百度文库、豆丁在线阅读实现方式 Txt/Word/Excel/PPT=PDF(OpenOffice+JodConverter)=SWF(pdf2swf)=FlexPaper 浏览 Txt/Word/Excel/PPT=PDF(MSOffice+JACOB)=SWF(pdf2swf)=FlexPaper 浏览 Txt/Word/Excel/PPT=SWF (FlashPaper)= FlexPaper 浏览 Txt/Word/Excel/PPT=SWF(print2flash)= FlexPaper 浏览前两种方式比较麻烦,都是先转成 PDF,再转成 SWF,最后用 FlexPape

2、r 浏览。后两种比较快捷,可直接将源文件转为 SWF,用 FlexPaper 浏览。由于FlashPaper 不是开源工具,加之 Win7 系统不兼容(我现在用的系统),所以就没采用第三种实现方式。Print2flash 是开源工具,即使公司产品中用到也不会出现版权纠纷,遗憾的是没找到如何用程序控制该工具转换文件的命令。第二种方式转 PDF 的时候相当复杂,也淘汰掉了。最后直接用的第一种方式。下载工具OpenOffice http:/zh.openoffice.org/new/zh_cn/downloads.htmlJodConverter http:/ java.io.File;import

3、 java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import com.artofsolving.jodconverter.DocumentConverter;import com.artofsol

4、ving.jodconverter.openoffice.connection.OpenOfficeConnection;import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter;public class ConvertServlet extends HttpServletprivate File sourceF

5、ile; /转换源文件private File pdfFile; /PDF目标文件private File swfFile; /SWF目标文件private Runtime r;public void init() throws ServletException sourceFile = new File(“D:/tomcat7/webapps/readonline/swfFile/s.ppt“);pdfFile = new File(“D:/tomcat7/webapps/readonline/swfFile/s.pdf“);swfFile = new File(“D:/tomcat7/we

6、bapps/readonline/swfFile/s.swf“);System.out.println(“第一步:生成文件对象,准备转换 “);Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException doPost(req, resp);Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletEx

7、ception, IOException /转换成pdf文件if(sourceFile.exists() if(!pdfFile.exists() OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);try connection.connect();DocumentConverter converter = new OpenOfficeDocumentConverter(connection); converter.convert(sourceFile, pdfFile);pdfFile.createNe

8、wFile();connection.disconnect(); System.out.println(“第二步:转换为 PDF格式 路径“ + pdfFile.getPath(); catch (.ConnectException e) e.printStackTrace();System.out.println(“OpenOffice服务未启动“);throw e; catch (com.artofsolving.jodconverter.openoffice.connection.OpenOfficeException e) e.printStackTrace();System.out.

9、println(“读取文件失败 “);throw e; catch (Exception e)e.printStackTrace();try throw e; catch (Exception e1) e1.printStackTrace(); else System.out.println(“已转换为PDF,无需再次转换“ ); else System.out.println(“要转换的文件不存在 “); /转换成swf文件r = Runtime.getRuntime();if(!swfFile.exists()if(pdfFile.exists() try Process p = r.ex

10、ec(“D:/Program Files/SWFTools/pdf2swf.exe “ + pdfFile.getPath() + “ -o “ + swfFile.getPath() + “ -T 9“);p.waitFor();swfFile.createNewFile();System.out.println(“第三步:转换为 SWF格式 路径:“ + swfFile.getPath();System.out.println(“第si步:转换为SWF格式mingcheng:“ + swfFile.getName();if(pdfFile.exists() pdfFile.delete()

11、; catch (Exception e) e.printStackTrace();try throw e; catch (Exception e1) / TODO Auto-generated catch blocke1.printStackTrace(); else System.out.println(“PDF文件不存在,无法转换“ ); else System.out.println(“已经转为SWF 文件,无需再次转换“ );HttpSession session = req.getSession();session.setAttribute(“fileName“, swfFile.

12、getName();resp.sendRedirect(req.getContextPath()+“/flexpaper/readFile.jsp“); 、web.xmlindex.jspconvertUtilservlet.ConvertServletconvertUtil/convertUtil 、readFile.jsp在线阅读html, body height:100%; body margin:0; padding:0; overflow:auto; #flashContent display:none; var fp = new FlexPaperViewer(FlexPaperV

13、iewer,viewerPlaceHolder, config : SwfFile : escape(http:/localhost:8080/readonline/swfFile/),Scale : 0.6, ZoomTransition : easeOut,ZoomTime : 0.5,ZoomInterval : 0.2,FitPageOnLoad : true,FitWidthOnLoad : false,PrintEnabled : false,FullScreenAsMaxWindow : false,ProgressiveLoading : true,MinZoomSize :

14、0.2,MaxZoomSize : 5,SearchMatchAll : false,InitViewMode : Portrait,ViewModeToolsVisible : true,ZoomToolsVisible : true,NavToolsVisible : true,CursorToolsVisible : true,SearchToolsVisible : true,localeChain: zh_CN);需要注意的问题 ConvertServlet 中的 p.waitFor();很重要,如果没有改行代码,可能出现 PDF 不能成功转换成 SWF 的情况。 新建 readFi

15、le.jsp 的时候一定要把标签中间的“删掉,否则 FlexPaper 不能浏览文件。 FlexPaper 不能正常浏览文件的时候,可以试试在官网添加信任。网址http:/ readFile.jsp 中动态显示文件名称的写法:第一种 SwfFile : escape(http:/localhost:8080/readonline/swfFile/); 第二种:escape(/swfFile/) 项目执行需要启动 OpenOffice 服务,在系统命令窗口执行命令。cd C:Program FilesOpenOffice.org 3programsoffice -headless -accept=“socket,host=127.0.0.1,port=8100;urp;“ -nofirststartwizard实现效果图第三种实现方式http:/ FlashPaper 之后,将上面网址中的代码替换 ConvertServlet 中的转换代码即可。FlexPaper 用法同上面介绍。FlashPaper 序列号 FPD200-59917-97447-41275如果仍有问题或者想获取 Demo 或者提出改进请加 QQ:897259924参考资料http:/

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

当前位置:首页 > 网络科技 > Java

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


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

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

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