PDF在线预览(java实现)
2012-09-13 10:28
561 查看
String fileName = getRequest().getParameter("filename"); //如路径 C:\\Users\\zj\\AppData\\Local\\Microsoft\\Windows\\Temporary Internet Files\\Content.IE5\\1347500646246.pdf
String location = getRequest().getParameter("location"); //如路径 attachments/2012/09/13/FDCD7438-85BB-4008-8F67-9E8C0C82D6FB.pdf
String basePath = SystemParamConfigUtil.getParamValueByParam("filePath"); //读取配置文件附件存储路径 //如路径 d:/data/file/oadoc/ String fileNameWithPath =basePath+location; try { // 转码(UTF-8-->GB2312),现在环境下的编码是UTF-8,但服务器操作系统的编码是GB2312 if(fileName!=null&&fileName.trim().length()>0){ fileName = URLEncoder.encode(fileName, "GB2312"); fileName = URLDecoder.decode(fileName, "ISO8859-1"); }else{ fileName = "a."+FileUploadUtils.getExtension(location).toLowerCase(); } File file = new File(fileNameWithPath); FileInputStream fileinputstream = new FileInputStream(file); long l = file.length(); int k = 0; byte abyte0[] = new byte[65000]; getResponse().setContentType("application/pdf"); getResponse().setContentLength((int) l); getResponse().setHeader("Content-Disposition", "inline; filename="+ fileName); while ((long) k < l) { int j; j = fileinputstream.read(abyte0, 0, 65000); k += j; getResponse().getOutputStream().write(abyte0, 0, j); } fileinputstream.close(); } catch (IOException e) { logger.error("打开失败,文件路径为:"+fileNameWithPath, e); e.printStackTrace(); }
js:
/** * 预览PDF * */ function viewPDF(fileLocation){ var filename =httpDownFileLocal(fileLocation); var strURL = "attachment_viewPdf.do?filename="+filename+"&location="+fileLocation; var sheight = screen.height-70; var swidth = screen.width-10; var winoption="left=0,top=0,height="+sheight+",width="+swidth+",toolbar=yes,menubar=yes,
location=yes,status=yes,scrollbars=yes,resizable=yes"; var tmp=window.open(strURL,'',winoption); }
/** * 下载文件到IE本地缓存目录下 * */ function httpDownFileLocal(filepathAndName){ var filepath = filepathAndName; var WshShell = new ActiveXObject("WScript.Shell"); //缓存目录 var keyValue = WshShell.RegRead('HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Cache\\Paths\\Directory'); var PostRecvImpl = new ActiveXObject("ASPCom.PostRecv"); var extName = filepath.substring(filepath.lastIndexOf('.')); var fileName = new Date().getTime() + extName; fileName = keyValue+"\\"+fileName; fileName = fileName.replace(/\\/gm,'\\\\'); PostRecvImpl.HTTPDownloadFile(fileName,filepath); return fileName; }
Adobe--设置:“编辑”--“首选项”--“因特网”--把三个复选框打√即可...
详见:附件
相关文章推荐
- Java实现office文档与pdf文档的在线预览功能
- Java实现在线预览附件 office转换PDF
- Java实现office文档与pdf文档的在线预览功能
- Java实现word文档转pdf/html在线预览
- java集成pdf.js实现pdf文件在线预览
- Java实现web在线预览office文档与pdf文档实例
- java 实现在线预览pdf,word等文档
- JAVA用flexpaper实现在线预览PDF文件
- java零碎要点010---Java实现office文档与pdf文档的在线预览功能
- java实现txt、excle、pdf、doc文档的在线预览
- Java实现office文档与pdf文档的在线预览功能
- Office在线预览及PDF在线预览的实现方式大集合
- 文档转pdf格式,实现在线预览
- java在线预览txt、word、ppt、execel,pdf代码
- java原装代码完成pdf在线预览和pdf打印及下载
- java在线预览txt、word、ppt、execel,pdf代码
- java 实现所有文件的在线查看(其他类型转pdf后用pdf.js显示)
- C# web实现word 转Html、office转Html、pdf转图片 在线预览文件
- Asp.net MVC 利用(aspose+pdfobject.js) 实现在线预览word、excel、ppt、pdf文件
- Java利用flexpaper插件实现文档在线预览