java实现附件预览(openoffice+PDF.js)
来源:互联网 发布:java 线程中断机制 编辑:程序博客网 时间:2024/06/05 19:34
java实现附件预览(openoffice+PDF.js),将office文档,通过openoffice工具转换为PDF文件,使用PDF.js进行前端展示
是对openoffice+swftools+flexpaper的升级版,减少一次swf文件转换,及flexpaper只能预览十页内容,原文:http://blog.csdn.net/z69183787/article/details/17468039
现支持的转换格式如下:
private static String[] docFileLayouts = {".txt",".doc",".docx",".wps",".xls",".xlsx",".et",".ppt",".pptx",".dps"};//office办公软件格式private static String[] imgFileLayouts = {".jpg",".gif",".jpeg",".png",".bmp"};//图片格式private static String[] pdfFileLayouts = {".pdf"};//pdf格式
如有其它格式需要,可以对转换格式进行扩展,
1、 安装Apache_OpenOffice_4.1.2_Win_x86_install_en-US.exe,
下载连接:http://www.openoffice.org/download/index.html
2、 添加环境变量path=D:\Program Files (x86)\OpenOffice 4\program
3、 执行open_office_service.bat脚本,并,查看进程soffice是否运行
4、 Action新增方法
/** * .解析文章内容到PDF * @param request * @param modelMap * @param baseAddition */private void initPDF(ServletWebRequest request,ModelMap modelMap, BaseAdditionbaseAddition) { Stringpath = ""; if("".equals(baseAddition.getExpandOne()) || baseAddition.getExpandOne()==null){ path= KAPath + baseAddition.getOperationId()+"/"+baseAddition.getAdditionId()+"/"; } // 调用转换类DocConverter,并将需要转换的文件传递给该类的构造方法 DocConverterd = new DocConverter(baseAddition); // 调用conver方法开始转换,先执行doc2pdf()将office文件转换为pdf;再执行pdf2swf()将pdf转换为swf; d.conver(); // 调用getPdfPath()方法,打印转换后的pdf文件路径 Stringpdfpath = request.getRequest().getContextPath()+path+d.getPdfName(); // 将相对路径放入sessio中保存 modelMap.put("pdfPath", pdfpath);}
4、前端jsp,PDF加载展示
<!--内容--><div class="mim_content"><iframe width="100%"height="700px" src="<%=basePath %>js/pdf/web/viewer.html?file=${pdfPath}"></iframe></div>
注:${pdfPath},
a.PDF文件路径必须为项目路径
b.文件名称不能包含中文s
5、切换到演示模式,由于使用iframe引入pdf页,全屏模式无法使用,具体原因可问度娘,这里只给出全屏显示思路。编辑viewer.js:
a.将全屏按扭显示
/*if (!PDFView.supportsFullscreen) { document.getElementById('presentationMode').classList.add('hidden'); document.getElementById('secondaryPresentationMode'). classList.add('hidden'); }*/b.更改按扭点击事件为自定义处理
request: function presentationModeRequest() { //引用knowledgeLuceneDetail.jspif(parent.document.IsFullScreen==null || !parent.document.IsFullScreen){parent.launchFullscreen();}else{parent.exitFullscreen();} return true; }c.函数可以隐藏不相关div,可以全屏显示,这里使用提隐藏div
var docHtml = document.documentElement;var docBody = document.body;var videobox = document.getElementById('content');var mi_main_div = $("#mi_main_div");var module_info_div = $("#module_info_div");var module_info_2_div = $("#module_info_2_div");//進入全屏function launchFullscreen() {var cssText = 'width:100%;height:100%;overflow:hidden;';mi_main_div.hide();module_info_2_div.hide();docHtml.style.cssText = cssText;docBody.style.cssText = cssText;videobox.style.cssText = cssText + ';' + 'margin:0px;padding:0px;';module_info_div.removeClass('module_info');document.IsFullScreen = true;}//退出全屏function exitFullscreen() {mi_main_div.show();module_info_2_div.show();docHtml.style.cssText = "";docBody.style.cssText = "";videobox.style.cssText = "";module_info_div.addClass('module_info');document.IsFullScreen = false;}
js、java代码,有一些垃圾代码,大家请见量,有觉得不爽的地方,可以自己优化。
相关文件PDF.js+源码,请超链:http://download.csdn.net/detail/shnsvyu/9573577
0 0
- java实现附件预览(openoffice+PDF.js)
- java实现附件预览(openoffice+swftools+flexpaper)
- java实现附件预览(openoffice+swftools+flexpaper)
- java实现附件预览(openoffice+swftools+flexpaper)
- java实现附件预览(openoffice+swftools+flexpaper)
- java实现附件预览(openoffice+swftools+flexpaper)
- java实现附件预览(openoffice+swftools+flexpaper)
- java实现附件预览(openoffice+swftools+flexpaper)
- java实现附件预览(openoffice+swftools+flexpaper)
- java实现附件预览(openoffice+swfTools+FlexPaper)
- java实现附件预览(openoffice+swfTools+FlexPaper)
- java实现附件预览(openoffice+swftools+flexpaper)
- java实现附件预览(openoffice+swftools+flexpaper)(解决jsp读取全盘文件问题)
- 通过pdf.js、openoffice实现客户端在线预览
- openoffice实现pdf上传文件预览功能
- Java实现在线预览附件 office转换PDF
- java集成pdf.js实现pdf文件在线预览
- java实现文件预览(openoffice+swftools+flexpaper)
- ubuntu升级C++11编写多线程程序
- 网易云捕:一款iOS平台下方便好用的崩溃收集统计系统
- javascript中undefined和NULL的区别
- 如何用NiceLabel快速设计您的标签
- 说说zepto.js的事件
- java实现附件预览(openoffice+PDF.js)
- python学习——错误处理
- 优化SQL查询:如何写出高性能SQL语句
- Andorid基础--------数据处理
- Beyond Compare进行二进制比较的方法
- java异常处理
- Runtime Permissions处理、servie+AsyncQueryHandler+AsyncTask结合用法(加载联系人)
- Android中拍照和从相册选择图片,并剪裁(二)
- JS中Null与Undefined的区别