OFFICE2016 禁用共享功能

潘正煦 Posted on 2017-03-24   6139

问题描述

OFFICE2016 在工具栏右侧增加了共享功能,点击后可以保存文档到微软的云中。在某些情况下,只允许用户查看文件,不允许另存为,此功能提供了渠道让用户能够获取到文档,因此需要禁用掉。

解决思路

  1. 通过控件的getOfficeVer方法判断office版本,如果为16则为2016.
  2. 通过TANGER_OCX_OBJ.ActiveDocument.CommandBars("Share").Enabled=false;即可禁用。

参考代码

//TANGER_OCX_OBJ为NTKO OFFICE文档控件
if(16==TANGER_OCX_OBJ.getOfficeVer())
{
	TANGER_OCX_OBJ.ActiveDocument.CommandBars("Share").Enabled=false;
} 

阅读

 


NTKO Office文档控件自定义工具栏按钮从右到左排列

NTKO Posted on 2017-03-16   2768

案例描述

NTKO OFFICE文档控件支持自定义工具栏按钮,自定义工具栏上的按钮的布局默认是从左至右显示的。本文探讨的是如何利用js代码实现按钮从右至左的布局效果。

产品相关方法

  1. 自定义工具栏的方法:
    AddCustomToolButton(ButtonText, ImgIndex)
    参数ButtonText:如果设置为""字符串则为不显示字符串
    参数ImgIndex:只能设置内部拥有的图片,传入的是图片索引。

  2. 设定工具栏上的按钮状态的方法:
    SetCustomToolButtonStatus(ButtonIndex, IsEnable, IsVisible)
    参数ButtonIndex:在调用AddCustomToolButton创建的时候得到。
    参数IsEnable:传True是可用,False为不可用
    参数IsVisible:传True是显示,False是不显示

解决思路及方法

  1. 让左侧的按钮用空格按钮来占位,从而实现需要的按钮在右边显示。
  2. 通过SetCustomToolButtonStatus设置空白按钮为可见但不可用,这样给用户的感觉就是没有按钮的。
  3. 控件支持全屏功能,还要实现全屏后自定义的按钮也要居右显示。实现办法是定义两套按钮,在非全屏状态下,仅显示第一套按钮,在全屏状态下,把第一套按钮隐藏掉,仅显示第二套按钮。
  4. 空格与文字说占用的宽度说明:
    a、每个空格占用4px
    b、每个文字占用12px
    c、每个按钮控件会自动加一个空格,加的空格占用11px
  5. 效果:

案例代码参考

<html>
<head>
    <title>NTKO Office文档控件自定义工具栏按钮从右到左排列JS示例</title>
	<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
	<style type="text/css">
#officecontrol {  height:100% ; width:100%; position:absolute;}
body {  margin:0px; padding:0px; overflow:hidden;}
   </style>
	<script type="text/javascript">
		var TANGER_OCX_OBJ;
		var TANGER_OCX_Width=0;
		//每个空格4px  每个按钮加11px 每个中文12px  仅图片是16px 图片加文字图片是20px
		var ButtonWordsNum=14; //所有按钮上的总字数
		var ButtonNum=4;  //定义的按钮数量加1(要加上空格按钮)
		var ButtonWidthImageNum=2;  //带图片的按钮的个数
		var ButtonOnlyImageNum=0;  //仅图片的按钮的个数
		function init()
		{
			TANGER_OCX_OBJ=document.getElementById("TANGER_OCX");
			TANGER_OCX_Width=document.getElementById("TANGER_OCX").offsetWidth;
			TANGER_OCX_OBJ.Menubar=false;
			AddNormalCustomToolButton();    //添加非全屏状态下的自定义工具栏
			AddFullScreenCustomToolButton(); //添加全屏状态下的自定义工具栏
			SetButtionVisable(true);       //设置按钮的可用及可见状态
		}
		
		function CreateSpaceString(IsNoramalShow)   //根据自定义按钮说占用的宽度,求出要用多少空格占位。
		{
			var spacestring="";
			var num=0;
			if(IsNoramalShow){
				num=(TANGER_OCX_Width-6-ButtonWordsNum*12-ButtonNum*11-ButtonWidthImageNum*20-ButtonOnlyImageNum*16)/4;
			}else{
				num=(screen.width-8-ButtonWordsNum*12-ButtonNum*11-ButtonWidthImageNum*20-ButtonOnlyImageNum*16)/4;
			}
			
			for(var i=0;i<num;i++)
			{
				spacestring+=" ";
			}	
			return spacestring;
		}
		function AddNormalCustomToolButton()   //添加非全屏状态下的自定义工具栏
		{
			TANGER_OCX_OBJ.CustomToolBar=true;
			TANGER_OCX_OBJ.AddCustomToolButton(CreateSpaceString(true), -1); //添加自定义工具栏按钮	
			TANGER_OCX_OBJ.AddCustomToolButton("保存文档", 0); //添加自定义工具栏按钮	
			TANGER_OCX_OBJ.AddCustomToolButton("关闭痕迹保留", 1); //添加自定义工具栏按钮	
			TANGER_OCX_OBJ.AddCustomToolButton("全屏缩放", -1); //添加自定义工具栏按钮	
		}
		function AddFullScreenCustomToolButton()   //添加全屏状态下的自定义工具栏
		{
			TANGER_OCX_OBJ.CustomToolBar=true;
			TANGER_OCX_OBJ.AddCustomToolButton(CreateSpaceString(false), -1); //添加自定义工具栏按钮	
			TANGER_OCX_OBJ.AddCustomToolButton("保存文档", 0); //添加自定义工具栏按钮	
			TANGER_OCX_OBJ.AddCustomToolButton("关闭痕迹保留", 1); //添加自定义工具栏按钮	
			TANGER_OCX_OBJ.AddCustomToolButton("全屏缩放", -1); //添加自定义工具栏按钮	
		}
		function SetButtionVisable(IsNoramalShow)       //设置按钮的可用及可见状态
		{
			for(i=0;i<ButtonNum*2;i++)
			{
				if(IsNoramalShow)
				{
					TANGER_OCX_OBJ.SetCustomToolButtonStatus(i,(i==0||i>=ButtonNum)?false:true,(i>=ButtonNum)?false:true);
				}else{
					TANGER_OCX_OBJ.SetCustomToolButtonStatus(i,(i>=0&&i<=ButtonNum)?false:true,(i>=0&&i<ButtonNum)?false:true);
				}
			}
		}
		function CustomToolBarCom(btnIdx)  //自定义按钮事件触发后执行的方法
		{
			if (0 == btnIdx) {
				
			}else if (1 == btnIdx ||btnIdx==ButtonNum+1 ) {
				alert(btnIdx);
				
			} else if (3 == btnIdx ||btnIdx==ButtonNum+3 ) {
				TANGER_OCX_OBJ.FullScreenMode=!TANGER_OCX_OBJ.FullScreenMode;
			}else{
			alert(btnIdx);
			}
		}

	</script>
</head>
<body onload='init()' sroll="no">
<div  id="officecontrol" class="officecontrol" > 
<script type="text/javascript" src="officecontrol/ntkoofficecontroldemo.js"></script>
</div>
<script language="javascript" for="TANGER_OCX" event="OnCustomToolBarCommand(btnIdx)">
	CustomToolBarCom(btnIdx);
</script>
<script language="javascript" for="TANGER_OCX" event="OnScreenModeChanged(IsFullScreenMode)">
	SetButtionVisable(!IsFullScreenMode);
</script>
</body>
</html>

阅读

 


NTKO OFFICE文档控件为何不能自动装载?

NTKO Posted on 2017-03-02   15058

1、问题表现

当访问引用控件的网页时,NTKO OFFICE文档控件窗口不会出现,导致相关的引用控件的Javacript语句无法运行。网页上出现类似“无法加载控件,请检查浏览器安全设定”的错误提示,并且可能有JavaScript无法找到对象的错误提示。

2、此问题和控件本身无关

为了解决NTKO OFFICE文档控件不能自动装载的问题,首先来看看浏览器装载对象涉及到的步骤。(暂时不考虑如防病毒软件或者其他过滤工具的影响)

对于HTML代码中引用控件的如下代码:

<object id="TANGER_OCX" classid="clsid:C9BC4DFF-4248-4a3c-8A49-63A7D317F404" 
codebase="/path/to/OfficeControl.cab#version=4,0,0,5" width="100%" height="100%">

其中:

  • **id="TANGER_OCX"**标识控件的JavaScript编程标识,通过document.all("TANGER_OCX")即可得到对控件对象的引用。
  • clsid:C9BC4DFF-4248-4a3c-8A49-63A7D317F404标识NTKO OFFICE文档控件的唯一标识。浏览器通过这个clsid来判断访问网页的客户机是否已经安装控件。
  • 在codebase="/path/to/OfficeControl.cab#version=4,0,0,5" 中,前面的**/path/to/OfficeControl.cab部分,标识控件自动安装文件在服务器上相对当前网页的URL位置,而#version=4,0,0,5**部分标识该网页需要的控件版本号。

浏览器装载控件的流程大致如下:

3、根据以上流程,当出现以下几种情况,NTKO OFFICE文档控件将不能自动装载:

  1. 本地Internet选项中的安全设定,在当前区域禁止下载已签名的ActiveX控件;

  2. 引用控件的网页中,<object 标记中的codebase属性指定不正确,导致浏览器无法下载OfficeControl.cab文件;

  3. 服务器上的OfficeControl.cab被破坏,失去正确的签名,或者使用了不正确的版本;

  4. 虽然服务器上的OfficeControl.cab正确,但是浏览器下载的有问题。这个可能会因为某些WEB服务器的mime的错误配置引起,导致服务器将OfficeControl.cab不以二进制文件的形式发送给浏览器;

  5. 本地Internet选项中的安全设定,在当前区域不允许运行ActiveX控件和插件;

  6. 还有可能是由于微软的补丁引起,或者其他防病毒软件或者过滤软件阻止了控件安装;

4、您可以按照如下次序检查并排除问题:

  1. 确认本地Internet选项中的安全设定中,允许下载已签名的ActiveX控件,并允许运行ActiveX控件和插件。

  2. 确认引用控件的网页中,<object 标记中的codebase=部分,正确指向了服务器上的OfficeControl.cab文件的URL[相对当前网页或者相对服务器根]。

  3. 从浏览器地址栏直接输入服务器上的OfficeControl.cab文件的URL,包含主机名,确认浏览器出现下载提示并且在下载保存后的OfficeControl.cab文件上,点击右键看属性,在出现的对话框中具有“数字签名”,且签名正确。

  4. 如果以上方法还不能解决问题,并且您的系统安装了“微软累积安全更新 MS05-052补丁”,请尝试如下步骤:

警告:如果使用注册表编辑器或其他方法错误地修改了注册表,则可能导致严重问题。这些问题可能需要重新安装操作系统才能解决。

1)单击“开始”,单击“运行”,键入 Regedit.exe,然后单击“确定”。 
2)找到以下注册表子项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility 
3)右键单击“ActiveX Compatibility”,查找NTKO OFFICE文档控件的CLSID:{C9BC4DFF-4248-4a3c-8A49-63A7D317F404},如果该项目存在,右键单击右边的“Compatibility Flags”项目,然后单击“修改”。在“数值数据”框中,选择16进制,输入00800000,然后单击“确定”。
4)如果该NTKO OFFICE文档控件的CLSID不存在,则右键单击“ActiveX Compatibility”,指向“新建”,单击“项”,键入NTKO OFFICE文档控件的CLSID:{C9BC4DFF-4248-4a3c-8A49-63A7D317F404},然后按 Enter。 
5)右键单击您在步骤 4 中创建的项,指向“新建”,然后单击“DWORD 值”。 
6)键入 Compatibility Flags,然后按 Enter。 
7)右键单击“Compatibility Flags”,然后单击“修改”。 
8)在“数值数据”框中,选择16进制,输入00800000,然后单击“确定”。 
9)退出注册表编辑器。
  1. 如果以上方法还不能解决问题,尝试暂时关闭防病毒软件或者其他过滤软件再进行安装。
  2. 如果还是不能解决问题,可能是机器配置被破坏,可以尝试进行手工安装。具体请参考相关文档。

阅读

 


3 条记录 1/1 页

博客类别


 
请选择省份
技术服务热线
17726687726
17783680163