OfficeEditMould.jsp 11.4 KB

<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@page import="com.engine.doc.util.IWebOfficeConf"%>
<%@page import="weaver.hrm.*"%>
<%@ page import="weaver.systeminfo.SystemEnv"%>
<jsp:useBean id="BaseBean" class="weaver.general.BaseBean" scope="page" />
<%
	User user = HrmUserVarify.getUser (request , response);
	if(user == null){
		return;
	}
	String __agent = request.getHeader("user-agent");
	boolean iweb2015 = IWebOfficeConf.canIwebOffice();
	
	if(iweb2015){
//		boolean __iweb2015 = "1".equals(Util.null2String(new RecordSet().getPropValue("weaver_iweboffice2015","isUseIweboffice2015")));
		boolean __iweb2015 = "1".equals(Util.null2String(DocPlugUtil.getoffice215Set().get("isopen")));
		boolean isChinaSystem = IWebOfficeConf.isChinaSystem(__agent);
		if(!isChinaSystem && !__iweb2015){   //不是国产操作系统,并且不是2015,则走03,09
			iweb2015 = false;
		}
	}

	String mClientName=BaseBean.getPropValue("weaver_obj","iWebOfficeClientName");
	if(mClientName==null||mClientName.trim().equals("")){
		mClientName="/docs/docs/iWebOffice2003.ocx#version=8.8.7.28";
	}
	if(!mClientName.startsWith("/docs/docs/")){
		mClientName = "/docs/docs/" + mClientName;
	}
	
	String mClassId=BaseBean.getPropValue("weaver_obj","iWebOfficeClassId");
	if(mClassId==null||mClassId.trim().equals("")){
		mClassId="clsid:23739A7E-5741-4D1C-88D5-D50B18F7C347";
	}
	boolean isIWebOffice2006 = (mClientName.indexOf("iWebOffice2006")>-1||mClientName.indexOf("iWebOffice2009")>-1)?true:false;
	boolean isIWebOffice2003 = (mClientName.indexOf("iWebOffice2003")>-1)?true:false;
	boolean isIWebOffice2009 = (mClientName.indexOf("iWebOffice2009")>-1)?true:false;
	String isHandWriteForIWebOffice2009=BaseBean.getPropValue("weaver_obj","isHandWriteForIWebOffice2009");
	String isNoComment="";
	if(isIWebOffice2006){
		isNoComment="1".equals(isHandWriteForIWebOffice2009)?"false":"true";
	}
	String isUseET=BaseBean.getPropValue("weaver_obj","isUseET");
	boolean  RMMode=("true".equals(BaseBean.getPropValue("weaver_obj","RMMode")))?true:false;
	
	String  __mFileType = request.getParameter("mFileType");
%>
<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">html,body{margin: 0;padding: 0;width: 100%;height: 100%;overflow: hidden;}</style>
		<script type="text/javascript" src="/docs/e9/WebOffice.js?version=2019082901"></script>
		<script language="javascript" for=WebOffice event="OnMenuClick(vIndex,vCaption)">
			if(vIndex == 1) {
				WebOpenLocal(); //打开本地文件
			}
			if(vIndex == 2) {
				WebSaveLocal(); //保存本地文件
			}
			if(vIndex == 3) {
				SaveDocument(); //保存正文到服务器上(不退出)
			}
			if(vIndex == 5) {
				document.getElementById("WebOffice").WebSetMsgByName("USERID", '<%=user.getUID()%>' || '');
				WebOpenSignature(); //签名印章
			}
			if(vIndex == 6) {
				WebShowSignature(); //验证签章
			}
			if(vIndex == 8) {
				WebSaveVersion(); //保存版本
			}
			if(vIndex == 9) {
				WebOpenVersion(); //打开版本
			}
			if(vIndex == 11) {
				SaveDocument(); //保存正文到服务器上
				webform.submit(); //然后退出
			}
			if(vIndex == 13) {
				WebOpenPrint(); //打印文档
			}
		</script>

		<SCRIPT language=javascript for=WebOffice event=OnToolsClick(vIndex,vCaption)>
			//响应工具栏事件 388405 编号
			if(vIndex == 11) {
                alert('<%=SystemEnv.getHtmlLabelName(388405,user.getLanguage())%>'+':' + vIndex + '\n\r' +'<%=SystemEnv.getHtmlLabelName(24986,user.getLanguage())%>'+ ':' + vCaption + '\n\r' + '<%=SystemEnv.getHtmlLabelName(500843,user.getLanguage())%>' + '\n\r\n\r' + '<%=SystemEnv.getHtmlLabelName(500844,user.getLanguage())%>' + webform.WebOffice.WindowStatus);
			}
			if(vIndex == 12) {
                webform.WebOffice.Alert('<%=SystemEnv.getHtmlLabelName(500845,user.getLanguage())%>');//自定义工具栏测试
			}
			//if (vIndex==-1){webform.WebOffice.Alert(vCaption);}             //在完成相应操作后响应iWebOffice标准工具栏操作铵钮事件,如"手写批注",vCaption="手写批注"
		</SCRIPT>
		<script language=javascript>
			var parseQueryString = function (url) {
		        var reg_url = /^[^\?]+\?([\w\W]+)$/,
		                reg_para = /([^&=]+)=([\w\W]*?)(&|$)/g, //g is very important
		                arr_url = reg_url.exec(url),
		                ret = {};
		        if (arr_url && arr_url[1]) {
		            var str_para = arr_url[1], result;
		            while ((result = reg_para.exec(str_para)) != null) {
		                ret[result[1]] = result[2];
		            }
		        }
		        return ret;
		    }
		    
			//作用:载入iWebOffice
			function Load() {
			  //使用方法:
			    var obj = parseQueryString(window.location.href);
				
				var docid = obj.mRecordID || '';
              	var isEdit = docid != "";
				
				try {
	              	window.__FileType = obj.mFileType;
					//以下属性必须设置,实始化iWebOffice
					document.getElementById("WebOffice").WebUrl = "/docs/mouldfile/OfficeServer.jsp"; //WebUrl:系统服务器路径,与服务器文件交互操作,如保存、打开文档,重要文件
					document.getElementById("WebOffice").RecordID = obj.mRecordID || ''; //RecordID:本文档记录编号
					document.getElementById("WebOffice").SAVETYPE = isEdit ? "EDIT" : ""; //RecordID:本文档记录编号
					document.getElementById("WebOffice").Compatible = "false";
					document.getElementById("WebOffice").Template = obj.mTemplate || '';  //Template:模板编号
					document.getElementById("WebOffice").FileName = obj.mFileName || ''; //FileName:文档名称
					document.getElementById("WebOffice").FileType = obj.mFileType || ''; //FileType:文档类型  .doc  .xls  .wps
                    document.getElementById("WebOffice").UserName = obj.mUserName;             //UserName:操作用户名,痕迹保留需要
					document.getElementById("WebOffice").EditType = obj.mEditType || ''; //EditType:编辑类型  方式一、方式二  <参考技术文档> 第一位可以为0,1,2,3 其中:0不可编辑;1可以编辑,无痕迹;2可以编辑,有痕迹,不能修订;3可以编辑,有痕迹,能修订;//第二位可以为0,1 其中:0不可批注,1可以批注。可以参考iWebOffice2003的EditType属性,详细参考技术白皮书
					document.getElementById("WebOffice").MaxFileSize = 8 * 1024; //最大的文档大小控制,默认是8M,现在设置成4M。
					document.getElementById("WebOffice").Language = obj.Language || "CH"; //Language:多语言支持显示选择   CH简体 TW繁体 EN英文
					// document.getElementById("WebOffice").AllowEmpty=false;                     //控制不允许保存空白内容的文档
					document.getElementById("WebOffice").ShowMenu = "1"; //控制整体菜单显示
					
					document.getElementById("WebOffice").ShowToolBar="1";      //ShowToolBar:是否显示工具栏:1显示,0不显示  2 :隐藏OFFICE软件工具栏
					<%if(isIWebOffice2006){%>
                        document.getElementById("WebOffice").VisibleTools('<%=SystemEnv.getHtmlLabelName(18474, user.getLanguage())%>',false);//18474 新建文件
                        document.getElementById("WebOffice").VisibleTools('<%=SystemEnv.getHtmlLabelName(83412, user.getLanguage())%>',false);//83412 打开文件
                        document.getElementById("WebOffice").VisibleTools('<%=SystemEnv.getHtmlLabelName(83413, user.getLanguage())%>',false);//83413 保存文件
                        document.getElementById("WebOffice").VisibleTools('<%=SystemEnv.getHtmlLabelName(26096, user.getLanguage())%>',false);//26096 全屏
                        document.getElementById("WebOffice").VisibleTools('<%=SystemEnv.getHtmlLabelName(83414, user.getLanguage())%>',false);//83414 重新批注
                        document.getElementById("WebOffice").VisibleTools('<%=SystemEnv.getHtmlLabelName(127874, user.getLanguage())%>',false);//127874 文字批注
                        document.getElementById("WebOffice").VisibleTools('<%=SystemEnv.getHtmlLabelName(500846, user.getLanguage())%>',false);//500846 手写批注
                        document.getElementById("WebOffice").VisibleTools('<%=SystemEnv.getHtmlLabelName(500847, user.getLanguage())%>',false);//500847 文档清稿
					<%}%>
					//以下为自定义菜单↓
					if(obj.mEditType == "1"){
                         document.getElementById("WebOffice").AppendMenu("1","<%=SystemEnv.getHtmlLabelName(500848, user.getLanguage())%>");//500848 打开本地文件(&L)
                         document.getElementById("WebOffice").AppendMenu("2","<%=SystemEnv.getHtmlLabelName(500849, user.getLanguage())%>");//500849 保存本地文件(&S)
						// document.getElementById("WebOffice").AppendMenu("3","保存远程文件(&U)");
						// document.getElementById("WebOffice").AppendMenu("4","-");
						// document.getElementById("WebOffice").AppendMenu("5","签名印章(&Q)");
						// document.getElementById("WebOffice").AppendMenu("6","验证签章(&Y)");
						// document.getElementById("WebOffice").AppendMenu("7","-");
						// document.getElementById("WebOffice").AppendMenu("8","保存版本(&B)");
						// document.getElementById("WebOffice").AppendMenu("9","打开版本(&D)");
						// document.getElementById("WebOffice").AppendMenu("10","-");
						// document.getElementById("WebOffice").AppendMenu("11","保存并退出(&E)");
						// document.getElementById("WebOffice").AppendMenu("12","-");
						// document.getElementById("WebOffice").AppendMenu("13","打印文档(&P)");
					}
					//以上为自定义菜单↑
					// document.getElementById("WebOffice").DisableMenu("宏(&M);选项(&O)...");    //禁止某个(些)菜单项
					document.getElementById("WebOffice").WebOpen(); //打开该文档    交互OfficeServer  调出文档OPTION="LOADFILE"    调出模板OPTION="LOADTEMPLATE"     <参考技术文档>
					StatusMsg(WebOffice.Status); //状态信息
				} catch(e) {
					alert(e.description); //显示出错误信息
				}
			}
			//作用:保存为HTML文档
			function WebSaveAsHtml() {
				try {

					StatusMsg(WebOffice.Status);
				} catch(e) {
					alert(e.description);
				}
			}
			
			function saveBookmarks(isEditMould){
				if("<%=__mFileType%>" == ".xls"){
					return true;
				}
			    var webOffice = document.getElementById("WebOffice");
			    var webObject = webOffice.WebObject;
			    var bookmarks = webObject.Bookmarks;
			    var bookmarkNames = "";
			    for (var i=1;i<=bookmarks.Count;i++){
			      if (bookmarkNames) {
			        bookmarkNames += ","
			      }
			      bookmarkNames += bookmarks.Item(i).Name;
			    };
			    webOffice.WebSetMsgByName("BOOKMARKNAMES",bookmarkNames);
			    webOffice.WebSetMsgByName("ISEDITMOULD",isEditMould ? "TRUE" : "FALSE");
			    return webOffice.WebSaveBookmarks();
			}
			window.mouldType = "editMould";
			
			function replaceCustomField(bookMarks){
				for(var key in bookMarks){
					SetBookmarks(key,bookMarks[key]);
				}
			}
		</script>
		<style>
			.iwebDiv{
				padding-top:20px;
				margin-top:-20px;
				position:relative;
			}
			.iwebDiv #WebOffice{
				position:absolute;
				top:0;
			}
		</style>
	</head>
	
	<body onLoad="Load()" onUnload="UnLoad()">
		<%if(iweb2015){%>
			<%@include file="/spa/document/iweb2015.jsp" %>
		<%}else{%>
			<div class="iwebDiv" style="width:100%;height:100%">
				<object name="WebOffice" id="WebOffice" width="100%" height="100%" classid="<%=mClassId%>" codeBase="<%=mClientName%>">
					<param name="wmode" value="Opaque"> 
				</object>
			</div>
		<%} %>
	</body>

</html>