`
妮子321
  • 浏览: 83807 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java 实现在线打开 word 文档 并发处理

阅读更多

1. 需求

防止多个用户同时打开一个文件,出现编辑保存文件相互覆盖的问题。

2. 页面代码

(1)web.xml

<!-- PageOffice Begin -->
	<servlet>
		<servlet-name>poserver</servlet-name>
		<servlet-class>com.zhuozhengsoft.pageoffice.poserver.Server</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>poserver</servlet-name>
		<url-pattern>/poserver.zz</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>poserver</servlet-name>
		<url-pattern>/sealsetup.exe</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>poserver</servlet-name>
		<url-pattern>/posetup.exe</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>poserver</servlet-name>
		<url-pattern>/pageoffice.js</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>poserver</servlet-name>
		<url-pattern>/jquery.min.js</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>poserver</servlet-name>
		<url-pattern>/pobstyle.css</url-pattern>
	</servlet-mapping>
	<servlet>
		<servlet-name>adminseal</servlet-name>
		<servlet-class>com.zhuozhengsoft.pageoffice.poserver.AdminSeal</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>adminseal</servlet-name>
		<url-pattern>/adminseal.zz</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>adminseal</servlet-name>
		<url-pattern>/loginseal.zz</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>adminseal</servlet-name>
		<url-pattern>/sealimage.zz</url-pattern>
	</servlet-mapping>
	<mime-mapping>
		<extension>mht</extension>
		<mime-type>message/rfc822</mime-type>
	</mime-mapping>
	<context-param>
		<param-name>adminseal-password</param-name>
		<param-value>111111</param-value>
	</context-param>
	<!-- PageOffice End -->

(2)Default.jsp 页面

<%@ page language="java"
	import="java.util.*,com.zhuozhengsoft.pageoffice.*"
	pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<title>演示:并发控制</title>
		<!--PageOffice.js和jquery.min.js文件一定要引用-->
		<script type="text/javascript"
			src="<%=request.getContextPath()%>/jquery.min.js"></script>
		<script type="text/javascript"
			src="<%=request.getContextPath()%>/pageoffice.js" id="po_js_main"></script>
	</head>
	<body style="font-size: 12px;">
		<form id="form1" runat="server">
			<div
				style="border: solid 1px RoyalBlue; width: 500px; text-align: center; height: 200px; margin: 100px auto;">
				<div style="margin-top: 50px; height: 170px;">
					<span style="color: Red;">操作说明:</span><span>首先点击“张三打开文件”会在弹出窗口中打开Word文档(不要关闭窗口),<br />再点击“李四打开文件”,看并发控制效果。</span>
					<br />
					<br />
					1:<a href="javascript:POBrowser.openWindowModeless('Word.jsp?userid=1','width=1200px;height=800px;');">张三打开文件</a>
					<br />
					<br />
					2:<a href="javascript:POBrowser.openWindowModeless('Word.jsp?userid=2','width=1200px;height=800px;');">李四打开文件</a>
				</div>
			</div>
		</form>
	</body>
</html>

(3)Wod.jsp

<%@ page language="java"
	import="java.util.*,com.zhuozhengsoft.pageoffice.*"
	pageEncoding="utf-8"%>
<%
String userName = "somebody";

String userId = request.getParameter("userid").toString();
if (userId.equals("1"))
{
    userName = "张三";
}
else
{
    userName = "李四";
}

PageOfficeCtrl poCtrl=new PageOfficeCtrl(request);
poCtrl.setServerPage(request.getContextPath()+"/poserver.zz");
poCtrl.addCustomToolButton("保存","Save",1);
poCtrl.setSaveFilePage("SaveFile.jsp");
//设置并发控制时间
poCtrl.setTimeSlice(20);
poCtrl.webOpen("doc/test.doc",OpenModeType.docNormalEdit,userName);
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
   <title>最简单的打开保存Word文件</title>
</head>
<body>
    <script type="text/javascript">
        function Save() {
            document.getElementById("PageOfficeCtrl1").WebSave();
        }
        
        //文档关闭前先提示用户是否保存
        function BeforeBrowserClosed(){
         if (document.getElementById("PageOfficeCtrl1").IsDirty){
                if(confirm("提示:文档已被修改,是否继续关闭放弃保存 ?"))
                {
                    return  true;
                    
                }else{
                
                    return  false;
                }
	         	
            }
             
        }
    </script>
    <form id="form1" >
    当前用户: <%=userName %><div style=" width:auto; height:700px;">
     <%=poCtrl.getHtmlCode("PageOfficeCtrl1")%>
    </div>
    </form>
</body>
</html>

(4)SaveFile.jsp

<%@ page language="java" import="java.util.*,com.zhuozhengsoft.pageoffice.*" pageEncoding="utf-8"%>
<%
FileSaver fs=new FileSaver(request,response);
fs.saveToFile(request.getSession().getServletContext().getRealPath("ConcurrencyCtrl/doc/")+"/"+fs.getFileName());
fs.close();
%>

3. 效果演示

4:注意:

(1)本示例为了兼容所有的浏览器,用pageoffice提供的POBrowser方法.   用 POBrowser 的页面比许引用 pageoffice.js 和 jquery.min.js 文件.

pageoffic.js 文件 和 jquey.min.js 文件封装到 jar 里面了.只需要web.xml 里面配置路径就可以. 一般是当前项目的根目录下.  参考上面的代码

<script type="text/javascript" src="<%=request.getContextPath()%>/jquery.min.js"></script>
<script type="text/javascript"  src="<%=request.getContextPath()%>/pageoffice.js" id="po_js_main"></script>

引用pageoffice.js 的时候 id 必须写

(2)打开文档的时候会提示注册

PageOffice V4.0 标准版试用序列号:IMTG6-BSXJ-JGZ6-3BIWM

(4)必须是不同的用户打开同一个文档.

b

分享到:
评论

相关推荐

    java在线编辑保存Word文件(支持跨浏览器)

    PageOffice是一款专门用于在Java Web应用中处理Office文档的组件,它可以直接在网页中打开、编辑和保存Word、Excel、PowerPoint等Office文档,无需借助第三方软件或插件。通过集成PageOffice,开发者可以构建一个...

    java swing 实现的word文档转换成pdf文档

    在给定的场景中,我们关注的是如何使用Java Swing来实现一个功能,即把Word文档转换为PDF文档。 首先,理解这个任务的背景,我们需要知道Word和PDF是两种常见的文档格式,各有其特点。Word文档通常用于编辑和格式化...

    java后端开发规范word文档

    这份"java后端开发规范word文档"包含了多个方面的内容,包括但不限于编程风格、命名规则、异常处理、并发控制、数据库操作、单元测试、日志记录以及代码组织结构等。 1. **编程风格**:编程风格是代码可读性的基础...

    Java实现web在线预览office文档

    本篇将详细介绍如何使用Java实现Web在线预览这些文档,以及在Linux环境下将Office文档转换为PDF。 首先,我们需要理解的是,Web在线预览Office文档并不意味着在服务器端打开这些文件,而是通过特定的技术手段将文档...

    LiberOffice实现在线编辑Word和Excel文件的应用

    LiberOffice在处理Word文档(.docx)和Excel表格(.xlsx)时通常表现出良好的兼容性,但在某些复杂格式或宏的情况下可能会遇到问题。因此,测试和优化是关键,确保所有功能在各种文件类型和版本上都能正常工作。 ...

    JAVA WORD中实现电子印章效果 文字浮于印章上面

    在JAVA中实现Word文档中的电子印章效果,可以让文档看起来更加正式和权威,尤其适用于法律、合同等场景。这个过程涉及到的主要技术包括Java编程语言、Apache POI库以及可能的图像处理技术。Apache POI是一个流行的...

    java操作word(包含书签插值)

    Java作为一种广泛使用的编程语言,提供了多种库来操作Word文档,实现自动化填充模板,例如书签插值,这在合同制作中非常有用。本文将详细讲解如何使用Java操作Word,特别是针对书签插值的方法,以及相关的技术和工具...

    java+pdf转word+word转pdf 无水印 无页数限制

    综上所述,实现"java+pdf转word+word转pdf 无水印 无页数限制"这一功能,需要对Java编程、PDF处理、Word文档结构有深入理解,以及熟练运用相关库。同时,需要在代码设计上考虑扩展性、可维护性和性能。

    java实现在线预览office文档之代码

    通过以上步骤,你就可以在Java项目中实现对Office文档和PDF的在线预览功能。这不仅适用于Web应用,也可以应用于桌面应用或者其他需要此功能的场景。记得在实际应用中,根据具体需求调整代码和配置,以满足项目的性能...

    Java基础面试题 word文档类型

    这些只是Java基础面试中可能会涉及到的部分知识点,实际文档可能还包含更多细节,如网络编程、数据库操作、并发编程等。准备面试时,不仅要理解这些概念,还要通过实践来加深理解,以便在面试中能够流畅地讨论和解答...

    基于Java实现wps在线编辑、在线预览后台服务.zip

    描述中提到的是与标题相同的主题,进一步强调了这是关于Java技术在构建WPS文档在线处理后台服务的应用。这可能涉及到文件上传、文档转换、协作编辑、实时保存以及预览等功能的实现,所有这些都需要在服务器端进行...

    java编程规范(word文档)

    这份文档通常包含多个方面的内容,包括命名规范、注释规则、代码结构、异常处理、类型使用、并发编程等多个核心主题。下面我们将深入探讨这些关键知识点。 1. **命名规范**: - 类名应全大写字母,每个单词首字母...

    Java实现word转PDF文件

    4. **打开Word文档**: 通过Dispatch接口的`Open`方法打开Word文件: ```java Dispatch doc = wordApp.getProperty("Documents").invoke("Open", yourFilePath).toDispatch(); ``` 5. **保存为PDF**: 调用...

    java学习文档(word)

    此外,文档可能还涵盖了Java的异常处理、IO流、网络编程和多线程等重要主题。在实践中,理论知识的运用是关键,这份文档将帮助读者理解如何将理论应用于实际项目开发。 其次,"100行Java代码构建一个线程池.doc"这...

    基于Java+web的在线Java编辑器.pdf

    1. **Java处理命令输入输出流**:在线编辑器通过Java调用`exec`命令执行程序,创建`Progress`对象以实现与程序运行环境的交互。Java的流API允许对输入和输出进行控制,输入流用于读取数据源,输出流则用于写入数据...

    java文档excel、word、pdf、ppt转图片

    在Java编程环境中,将文档(如Excel、Word、PDF、PPT)转换为图片是一种常见的需求,这在处理大量文档预览、数据可视化或者移动设备兼容性问题时尤其有用。以下是一些关于如何使用Java实现这种转换的关键知识点: 1...

    java转换成word

    2. **XWPF (XML Word Processing):** Apache POI的子项目XWPF专门用于处理.docx格式的Word文档。它基于XML,允许开发者创建复杂的Word文档,包括段落、表格、图片等。 3. **HSSF (Horrible Spreadsheet Format):** ...

    java freemarker导出word -包含多张图片导出

    总结,使用Java FreeMarker导出包含多张图片的Word文档,需要结合Apache POI库,创建合适的模板,处理图片数据,并通过FreeMarker将模板与数据合并。这个过程涉及到文件操作、模板引擎的理解以及对Word文档结构的...

    word文件转pdf或者word转html实现在线预览

    在IT领域,尤其是在文档处理和在线服务中,将Word文件转换为PDF或HTML格式是常见的需求,这通常是为了实现在线预览、跨平台兼容性或优化网页显示效果。本篇文章将详细探讨如何实现这一过程,并重点讲解使用Java开发...

Global site tag (gtag.js) - Google Analytics