var url = "one/readontheweb.jsp?unid="+unid;
window.location = encodeURI(url);
功能:在线预览
String htmlUrl="";
try{
String unid = request.getParameter("unid");
AppFile appFile = new AppFileManager(JNDI).doFindBeanByKey(unid);
appFile = null == appFile ? new AppFile() : appFile;
htmlUrl= AHSZFileToHtmlTools.getUrlByFile(appFile);
}catch(Exception e){
e.printStackTrace();
}
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>首页</title>
<style type="text/css">
.boxContent{height: 100%;width:auto;min-width:600px;_width:expression(documentElement.clientWidth >1000? documentElement.clientWidth:1000);}
#MainWrap{padding: 10px;text-align: center;}
</style>
<script type="text/javascript" src="${corejs}/jquery.js"></script>
<script type="text/javascript">
function reinitIframe(){
var iframe = document.getElementById("mainFrm");
try{
var bHeight = iframe.contentWindow.document.body.scrollHeight;
var dHeight = iframe.contentWindow.document.documentElement.scrollHeight;
var height = Math.min(bHeight, dHeight);
iframe.height = height;
}catch (ex){}
}
//window.setInterval("reinitIframe()", 500);
</script>
</head>
<body>
<div class="boxContent">
<div id="MainWrap" style="height:2100px;">
<iframe id="mainFrm" src="${path }<%=htmlUrl %>"
scrolling="no" marginheight="0" marginwidth="0" frameborder="0"
width="100%" height="100%" name="mainFrm" onload="this.height=100%"
style="background-color:transparent">
</iframe>
</div>
</div>
</body>
</html>
<script type="text/javascript">
/**$(function(){
//reinitIframe();
});*/
</script>
public class AHSZFileToHtmlTools {
public static final int WORD_HTML = 8;
public static final int EXCEL_HTML = 44;
public static String getUrlByFile(AppFile appFile) {
String fileExt = appFile.getFile_ext();
String defaultUrl = "other.jsp?unid=" + appFile.getFile_unid();
if ("doc".equalsIgnoreCase(fileExt)
|| "docx".equalsIgnoreCase(fileExt)
|| "xls".equalsIgnoreCase(fileExt)
|| "xlsx".equalsIgnoreCase(fileExt)) {
StringBuffer htmlPath = new StringBuffer();
htmlPath.append(getWebAppAddress()).append("was/upload/generate/");
if (!new File(htmlPath.toString()).exists()) {
FileUtil.mkdirs(htmlPath.toString());
}
htmlPath.append(appFile.getFile_unid()).append(".html");
if (!new File(htmlPath.toString()).exists()) {
String srcPath = getWebAppAddress() + appFile.getFile_path();
srcPath = srcPath.replace("//", "/");
srcPath = srcPath.replaceAll(" ", "%20");
byte2File(BlobUtil.blobToBytes(appFile.getFile_data()), srcPath);
try {
if ("doc".equalsIgnoreCase(fileExt)
|| "docx".equalsIgnoreCase(fileExt)) {
wordToHtml(srcPath, htmlPath.toString());
} else {
excelToHtml(srcPath, htmlPath.toString());
}
//new AppFileManager(GlobalParameter.APP_WAS).doUpdate(appFile);
} catch (Exception e) {
e.printStackTrace();
return defaultUrl;
}
}
return "/was/upload/generate/" + appFile.getFile_unid() + ".html";
}
return defaultUrl;
}
/**
* 文档转换函数
*
* @param docfile
* word文档的绝对路径加文件名(包含扩展名)
* @param htmlfile
* 转换后的html文件绝对路径和文件名(不含扩展名)
* @throws Exception
*/
public static void wordToHtml(String docfile, String htmlfile) throws Exception {
// 初始化com的线程
ComThread.InitSTA();
ActiveXComponent app = new ActiveXComponent("Word.Application"); // 启动word
try {
app.setProperty("Visible", new Variant(false));
// 设置word不可见
Dispatch docs = app.getProperty("Documents").toDispatch();
Dispatch doc = Dispatch.invoke(
docs,
"Open",
Dispatch.Method,
new Object[] { docfile, new Variant(false),
new Variant(true) }, new int[1]).toDispatch();
// 打开word文件
Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {
htmlfile, new Variant(WORD_HTML) }, new int[1]);
// 作为html格式保存到临时文件
Variant f = new Variant(false);
Dispatch.call(doc, "Close", f);
} catch (Exception e) {
throw e;
} finally {
app.invoke("Quit", new Variant[] {});
// 释放在程序线程中引用的其它com,比如Adobe PDFDistiller
ComThread.Release();
}
}
/**
* EXCEL转HTML
*
* @param xlsfile
* EXCEL文件全路径
* @param htmlfile
* 转换后HTML存放路径
* @throws Exception
*/
public static void excelToHtml(String excelfile, String htmlfile) throws Exception {
// 初始化com的线程
ComThread.InitSTA();
// 启动excel
ActiveXComponent app = new ActiveXComponent("Excel.Application");
try {
// 设置excel不可见
app.setProperty("Visible", new Variant(false));
Dispatch excels = app.getProperty("Workbooks").toDispatch();
// 打开excel文件
Dispatch excel = Dispatch.invoke(
excels,
"Open",
Dispatch.Method,
new Object[] { excelfile, new Variant(false),
new Variant(true) }, new int[1]).toDispatch();
// 作为html格式保存到临时文件
Dispatch.invoke(excel, "SaveAs", Dispatch.Method, new Object[] {
htmlfile, new Variant(EXCEL_HTML) }, new int[1]);
Variant f = new Variant(false);
Dispatch.call(excel, "Close", f);
} catch (Exception e) {
throw e;
} finally {
app.invoke("Quit", new Variant[] {});
// 释放在程序线程中引用的其它com,比如Adobe PDFDistiller
ComThread.Release();
}
}
/**
* 获取系统的应用路径(路径在应用下)
*
* @return
*/
private static String getWebAppAddress() {
Class theClass = AHSZFileToHtmlTools.class;
java.net.URL u = theClass.getResource("");
// str会得到这个函数所在类的路径
String str = u.toString();
// 截去一些前面6个无用的字符
str = str.substring(6, str.length());
// 将%20换成空格(如果文件夹的名称带有空格的话,会在取得的字符串上变成%20)
str = str.replaceAll("%20", " ");
// 查找“WEB-INF”在该字符串的位置
int num = str.indexOf("WEB-INF");
// 截取即可
str = str.substring(0, num);
if (System.getProperty("os.name").toUpperCase().indexOf("LINUX") >= 0) {
str = "/" + str;
}
return str;
}
public static void byte2File(byte[] buf, String filePath) {
BufferedOutputStream bos = null;
FileOutputStream fos = null;
File file = null;
try {
File dir = new File(filePath);
if (!dir.exists() && dir.isDirectory()) {
dir.mkdirs();
}
file = new File(filePath);
fos = new FileOutputStream(file);
bos = new BufferedOutputStream(fos);
bos.write(buf);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (bos != null) {
try {
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
相关推荐
视图接收到数据后,将其插入到页面的指定位置,实现预览。 6. **安全考虑**:确保对上传和预览的文件进行安全检查,防止恶意文件的上传和执行。限制可预览的文件类型,使用Content-Disposition头来防止文件被下载,...
`jquery.media.js`可能利用此标签插入PDF阅读器,以实现在线预览。 4. **Adobe Flash**:在某些浏览器不支持HTML5或者需要更丰富的交互功能时,`jquery.media.js`可能会借助Adobe Flash技术来显示PDF。Flash提供了...
在IT行业中,将Word文档转换为PDF格式并实现在线预览功能是一项常见的需求,尤其在Web应用中。这个压缩包“word转PDF然后实现在线预览的功能.rar”提供了一个技术解决方案,下面我们将深入探讨其中涉及的关键知识点...
这个"Word转PDF在实现在线预览功能.rar"压缩包提供了一个使用Java来实现这一功能的解决方案。Java作为一种广泛使用的编程语言,具有丰富的库资源,可以方便地处理这种文件转换任务。 首先,我们需要了解的是Apache ...
### Linux服务上实现在线预览PPT/PPTX/DOC/DOCX/XLS/XLSX文件的安装插件详细步骤 #### 环境准备 本文档主要介绍如何在Linux服务器上实现各种常见文档(包括PPT、PPTX、DOC、DOCX、XLS、XLSX)的在线预览功能。此...
标题中的“poi将word、PPT、Excel转pdf实现在线预览的jar包”涉及到的是Apache POI库在Java开发中的应用,以及如何利用它来处理Microsoft Office文档并转换为PDF格式,以便进行在线预览。Apache POI是Java平台上用于...
为了实现预览功能,可以使用iframe嵌入HTML页面,或者使用PDF.js这样的库来在浏览器中加载PDF文件。 在"WordOnline-master"这个项目中,很可能包含了一个完整的Java实现,包括上述步骤。项目可能提供RESTful API,...
FlashPaper+JAVA实现在线预览功能 titular summary information: FlashPaper+JAVA实现在线预览功能 FlashPaper是一款功能强大的文档转换工具,可以将各种格式的文档转换为SWF格式,以便在线预览。下面将详细介绍...
"插件包"可能包含了FlexPaper的库文件和必要的插件,这些是实现预览功能的核心组件。开发者需要将这些文件正确地引用到项目中,以便在服务器端处理文件转换,并在客户端呈现预览。 "帮助文档"则提供了关于如何使用...
在Java开发中,实现Word文档的在线预览是一项常见的需求,尤其在企业级应用中,例如文档管理系统或者协同办公平台。这项功能可以让用户无需下载原始文件就能查看文档内容,提高工作效率并减少服务器存储压力。本资源...
本篇将详细介绍如何利用Aspose实现在线预览这些文件类型。 1. **Aspose.Words for .NET** Aspose.Words 是Aspose产品家族中的一个重要组件,专门用于处理Microsoft Word文档(.doc, .docx等)。通过这个库,你可以...
在Asp.net MVC框架中,实现在线预览各种办公文档,如Word、Excel、PowerPoint和PDF文件,是一项常见的需求。这通常涉及到技术栈的整合,包括后端处理和前端展示。以下是一些关键知识点: 1. **Asp.net MVC框架**:...
在仅仅是预览pdf文件且UI要求不高的情况下,可以直接通过a标签href属性实现预览。这种方法简单易行,但缺乏灵活性和交互性。 方式二:使用jquery.media.js插件实现预览 jquery.media.js插件可以实现pdf预览功能...
例如,使用LibreOffice的`ConvertService`接口,可以将一个.doc文件转换为HTML,然后在网页中嵌入这个HTML内容,从而实现预览。 SWFTools是一个用于处理PDF和图像的工具集,它可以将PDF转换为Flash SWF格式,这样...
本文将深入探讨如何使用JSP技术来实现Word和Excel文档的在线预览功能,这对于许多Web应用程序来说是一项非常实用的功能,能够极大地提升用户体验。 首先,要实现在线预览,我们需要理解JSP的基础工作原理。JSP是由...
本文将详细讨论如何使用PHP实现在线预览PDF生成,同时也会提及提供的文档和命令说明。 首先,我们要理解PHP生成PDF的基本原理。通常,开发者会借助第三方库来完成这个任务,如TCPDF、FPDF或DOMPDF等。这些库允许PHP...
本文将深入探讨如何使用jQuery实现PDF在线预览功能,这在许多Web应用中都是一种常见且实用的需求。 首先,我们需要理解PDF在线预览的基本原理。PDF(Portable Document Format)是一种通用的文件格式,用于保存文档...
在线预览通常通过在浏览器中渲染文件内容来实现,这需要借助一些第三方库或者服务,因为浏览器本身并不支持直接处理所有类型的文件。对于不同类型的文件,处理方式也有所不同。 1. **PDF预览**: 对于PDF文件,...
本项目“java实现在线预览,仿百度文库”旨在利用Java技术栈,模拟百度文库的在线预览体验,让用户能够便捷地在网页上查看各种类型的文档。 首先,我们需要理解Java的基础架构。Java是一种广泛使用的编程语言,尤其...
这个压缩包“aspose实现在线预览word,ppt,excel,pdf文件架包(2)”显然是Aspose库的一部分,用于帮助开发者实现在线预览这些文件类型的功能。下面我们将详细探讨Aspose的相关知识点及其在实现在线预览中的应用。 1...