web项目 在线预览doc文档

在线预览word文档

      • 前端代码
      • 后台controller代码(使用Aspose.Words)

前端代码

在前端发送ajax请求,并展示后端生成的html临时文件

			showFile:function(meeId){
						var formData = new FormData();
						formData.append('meeId',meeId);

				/
					 $.ajax({
					     type: "post",
					     url: baseUrl + '/meeting/showFile',
					     async: false,
					     dataType: "json",
					     data: formData,
					     contentType: false,
					     processData: false,
					     success: function (result) {

					    	if (meeId != "0") {
								layer.open({
									title:'预览',
								    type: 2, 				   
								    area: ['800px','900px'], //宽高
								    content: '../' + meeId + '.html'
								});	//该ajax请求必须在服务器的端口号下访问(如果服务器使用tomcat,则该网址端口号应为tomcat的端口号)

					           }
					       },
					 });
				},

后台controller代码(使用Aspose.Words)

@RequestMapping("/meeting/showFile")
public void putFile(HttpServletRequest request,HttpServletResponse response, Integer meeId ) throws Exception{
//通过前台的请求参数在数据库获取word转换成的byte[]数组(这里为meeRecord)
	
    //根据相对路径创建临时文件目录
	String contextPath = request.getSession().getServletContext().getRealPath("");
	String savePath=contextPath;
	String fileName=meeId+"";//由于每个ID是唯一的,而且每个id对应一个记录文件,所以该临时文件也唯一

    File file =new File(savePath );//判断文件及文件目录
    if(!file.exists()){
    	file.createNewFile();
    }

    //向空的文件中写入数据流
	FileOutputStream os = new FileOutputStream(savePath + "/" +fileName);
	os.write(meeRecord);
	os.close();

    //使用Aspose.Words的功能进行Word文档到HTML页面的转制工作
    com.aspose.words.Document doc = new com.aspose.words.Document(savePath + "/" + fileName);
    HtmlSaveOptions hso = new HtmlSaveOptions(SaveFormat.HTML);
    String htmlPath = savePath + meeId + ".html";//转换成的html真实路径文件位置必须与前端访问的虚拟文件一致
    System.out.println(htmlPath);
    //输出C:\workspaceNeon\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\oa\14.html
    
    doc.save(htmlPath, hso);
    //转制完成后,删除原有的Word文件
    file.delete();

}	

使用工具:aspose-words-14.7.0-jdk16

你可能感兴趣的:(java)