J.Office另一种在线Office编辑器整合

我们知道,在线Office插件,国内有几家公司做得不错,老的厂商有江西金格,重庆软航,北京点聚等。

目前根据客户的需要,J.office提供重庆软航的在线Office编辑的集成解决方案,购买J.Office的客户可以自己购买,也可以由宏天帮助采购。

 

J.Office 2.0提供了两种方式,用户只需要配置,则可以同时支持重庆软航或北京点聚的,以下为J.Office提供的软航的Office插件的整合代码示例方式。

 

 

/**
 * 集成软航Office在线编辑控件
 * @param {} conf
 * @return {}
 */
NtkOfficePanel=function(conf){
	var fileId=conf.fileId?conf.fileId:'';
	var officeObj = document.createElement('object');
	officeObj.width = "100%";
	officeObj.height = "100%";
	officeObj.classid= "clsid:A39F1330-3322-4a1d-9BF0-0BA2BB90E970"; 
	officeObj.codebase = __ctxPath+'/js/core/ntkoffice/OfficeControl.cab';//weboffice_V6.0.4.6.cab#V6,0,4,6
	
	var panelConf={border:false,layout:'fit'};
	
	/**
	 * 保存文档
	 */
	var saveFn=function(config){
		fileId=config.fileId?config.fileId:'';
		var result= officeObj.SaveToURL(__fullPath + '/file-upload',"EDITFILE","fileId="+fileId,config.docName+'.doc',0);
		var obj=Ext.util.JSON.decode(result);
		if(obj&&obj.success){
			fileId=obj.fileId;
		}else{
			obj={success:false};
		}
		return obj;
	};
	
	if(conf.showToolbar){
		panelConf.tbar=new Ext.Toolbar({
			items:[
				{
					text : '保留修改痕迹',
					iconCls : 'btn-archive-save-trace',
					handler : function() {
						officeObj.ActiveDocument.Application.UserName=curUserInfo.fullname;
						officeObj.ActiveDocument.TrackRevisions=true;
					}
				}, '-', {
					text : '取消保留痕迹',
					iconCls : 'btn-archive-cancel-trace',
					handler : function() {
						officeObj.ActiveDocument.TrackRevisions=false;
					}
				}, '-',{
					text : '清除痕迹',
					iconCls : 'btn-archive-eraser',
					handler : function() {
						officeObj.ActiveDocument.AcceptAllRevisions();
					}
				},'-',{
					text:'保存至服务器',
					iconCls:'btn-save',
					scope:this,
					handler:function(){
						Ext.MessageBox.prompt('输入提示','请输入文档的名称',function(btn,text){
							if(btn!='ok') return;
							if(text=='')text='未命名';
							var result=saveFn({docName:text});
							if(result.success){
								Ext.ux.Toast.msg('操作信息','成功文档保存~');
							}else{
								Ext.ux.Toast.msg('操作信息','保存文档失败!');
							}
						});
						
					}
				}
			]
		});
	}
	
	Ext.applyIf(panelConf,conf);

	var panel=new Ext.Panel(panelConf);
	panel.on('afterrender',function(){
			panel.body.appendChild(officeObj);
			panel.doLayout();
			if(fileId!=''){
				officeObj.OpenFromURL(__ctxPath+'/file-download?fileId='+fileId);
			}else{
				officeObj.CreateNew("Word.Document");
			}			
	});

	//对外公共方法
	return {
		panel:panel,
		officeObj:officeObj,
		openDoc:function(inFileId){
			fileId=inFileId;
			officeObj.OpenFromURL(__ctxPath+'/file-download?fileId='+fileId);
		},
		/**
		 * return json result is format as below:
		 * {sucess:false} or 
		 * {success:true,fileId:73,fileName:'myDoc.doc',filePath:'others/2010/aaa0393304.doc',message:'upload file success(10229 bytes)'}
		 */
		saveDoc:function(config){
			return saveFn(config);
		},
		closeDoc:function(){
			officeObj.Close();
		}
	};
};

 

 

使用以下所示:

//创建
this.officePanel=NtkOfficePanel({showToolbar:true,height:320});

...
//引用
items:[
...,
this.officePanel.panel
]

//保存文档
Ext.MessageBox.prompt('操作信息','请输入文档的名称',function(btn,text){
							if(text=='')text='未命名';
var resultJson=officePanel.saveDoc({docName:text});
					
				});

 整合界面如下:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值