jsp页面:
<a href=\'#\' onclick=onLine(\''+urls[i]+'\') >在线打开</a>
html页面超链接单击打开online函数
var onLine = function(filename){
var param="toolbar=yes,location=yes,menubar=yes,
scrollbars=yes,resizable=yes";
var path = "DocumentCabinetAction!openOnLine.action?
filepath="+encodeURI(filename);
window.open(path,'maxwindow',param);
};
online函数:打开一个新的窗口,path为后台函数,直接输出流到页面,在线打开。这个函数不能异步提交。
//type 为response 返回类型,filename 为要打开的文件名称
if((filename.indexOf(".xls")>0) || (filename.indexOf(".xlsx")>0)){
type = "application/vnd.ms-excel";
}else if(filename.indexOf(".pdf")>0){
type = "application/pdf";
}else if((filename.indexOf(".doc")>0) || (filename.indexOf(".docx")>0)){
type = "application/msword";
}else if(filename.indexOf(".txt")>0){
type = "text/plain";
}else if(filename.indexOf(".ppt") >0){
type = "application/ppt";
}
//response设置返回内容type,outputStream输出
response.setContentType(type);
response.setHeader("Content-disposition","inline;filename="+URLEncoder.encode(filename, "utf-8"));
//ftp读取文件,并放入到输出流中
ftp.retrieveFile(new String(filename.getBytes("GBK"),"ISO-8859-1"), outputStream);
outputStream.flush();
outputStream.close();
注意点:一般下载、在线打开不要使用ajax提交,ajax提交会有问题,页面预览的时候第一次还是会弹出下载/打开对话框,第二次就正常显示了
在线打开的条件是:电脑中有相应的打开软件,不然在线显示不了,要想直接靠浏览器打开,要使用插件,比如dsoframer.ocx,这个插件只能打开word,excel ,代码如下:
<div id="div1" style="width:100%;height:90%;">
<OBJECT id="FramerControl1" codeBase="dsoframer.ocx" style="margin:0px;top:0px;height:700px;width:100%" classid="clsid:00460182-9E5E-11D5-B7C8-B8269041DD57">
<PARAM NAME="_ExtentX" VALUE="16960">
<PARAM NAME="_ExtentY" VALUE="13600">
<PARAM NAME="BorderColor" VALUE="-2147483632">
<PARAM NAME="BackColor" VALUE="-2147483643">
<PARAM NAME="ForeColor" VALUE="-2147483640">
<PARAM NAME="TitlebarColor" VALUE="-2147483635">
<PARAM NAME="TitlebarTextColor" VALUE="-2147483634">
<PARAM NAME="BorderStyle" VALUE="1">
<PARAM NAME="Titlebar" VALUE="0">
<PARAM NAME="Toolbars" VALUE="1">
<PARAM NAME="Menubar" VALUE="0">
</OBJECT>
</div>
//在线打开word,excel path 为全路径,
getWord = function(path){
if(path == null)
{
Ext.Msg.alert('提示', '要打开的文件路径不存在!');
}else if((path.indexOf(".xls") >0) || (path.indexOf(".doc")>0) ){
document.getElementById('FramerControl1').Open(path);
document.getElementById('FramerControl1').ProtectDoc(1,2,"satellite");
//显示修订留痕
document.getElementById('FramerControl1').ShowRevisions(0);
}else{
Ext.Msg.alert('提示', '该格式的文件不能打开!');
}
};
分享到:
相关推荐
使用poi、itextpdf实现doc、xls、xlsx、txt、图片、txt等等格式转换pdf,实现在线浏览功能
java实现浏览器在线预览offic(doc、xls、ppt)和pdf文件,本人将例子集成到项目中,已成功。 技术原理:将文件先转换成pdf文件,再将pdf文件转换成swf文件,最后显示在浏览器上。 资源描述:本资源包括swftools...
java解析pdf,zip,doc,xls等格式,解压就可运行
这是用java写的代码,把doc,ppt,xls,txt等一些文件转换成pdf格式
java实现docx、doc、xlsx、xls、ppt文件转换pdf文件所需jar以及工具类
使用poi,pdfbox读取doc,docs,ppt,pptx,xls,xlsx,pdf,txt等各类文件内容,包含代码和jar包
iExport.java DocExport.java XlsExport.java HtmlExport.java PdfExport.java
Spring boot 在线预览办公文件(doc、docx、xls、xlsx、pdf等),转化效果个人觉得比较理想
使用spring boot打造文件文档在线预览项目解决方案,支持doc、docx、ppt、pptx、xls、xlsx、zip、rar、mp4、mp3以及众多类文本如txt、html、xml、java、properties、sql、js、md、json、conf、ini、vue、php、py、...
Spire.Pdf(版本4.8.15.2040) 使用时引用将四个文件都引用到项目。 **亲测Word完全可用 VS2015+FrameWork4.6.2**** if (openFileDialog.ShowDialog() == true) { ShowOperInfo("正在打开文档……"); Spire.Doc....
POI导出.pdf,.doc,.xls,.jpg四种格式通用组件
解决生成pdf文件第一页表头产生红色字体: Evaluation Warning : The document was created with Spire.PDF for Java
Spire.Office for Java 是一套企业级的涵盖 E-iceblue 所有 Java组件的集合,它包括以下产品的最新版本:Spire.Doc for Java, Spire.XLS for Java,Spire.Presentation for Java, Spire.PDF for Java 和 Spire....
实现将doc,xls,ppt,tif等文件转换输出成PDF格式文件
所需要的jar包
java 文件检索 搜索 word excel ppt xls pdf autocad http操作控制 windows 2003 search index不好用,自娱自乐写了一个。 只提供使用,源码出售另请联系 可用于毕业设计 在安装前配置 searchFileService.conf ...
Spire.Office for Java 是一套企业级的涵盖 E-iceblue 所有 Java组件的集合,它包括以下产品的最新版本:Spire.Doc for Java, Spire.XLS for Java,Spire.Presentation for Java, Spire.PDF for Java 和 Spire....
支持各种类型文件转PDF,如doc.xls.docx等,主要使用openOffice,需要自行安装。
JAVA文件文档在线预览项目解决方案,对标业内付费产品有【永中office】【office365】【idocv】等,该项目使用流行的spring boot搭建,易上手和部署,支持主流办公文档的在线预览,如doc,docx,Excel,pdf,txt,zip,rar,...
//打开的是pdf Intent intent = new Intent("android.intent.action.VIEW"); intent.addCategory("android.intent.category.DEFAULT"); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); Uri uri = Uri.from...