OfficeControl_gov.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475
  1. var OFFICE_CONTROL_OBJ;//控件对象
  2. var IsFileOpened; //控件是否打开文档
  3. var fileType ;
  4. var fileTypeSimple;
  5. var task;
  6. function intializePage(fileUrl)
  7. {
  8. OFFICE_CONTROL_OBJ = document.all("TANGER_OCX");
  9. initCustomMenus();
  10. NTKO_OCX_OpenDoc(fileUrl);
  11. }
  12. function onPageClose()
  13. {
  14. if(!OFFICE_CONTROL_OBJ.activeDocument.saved)
  15. {
  16. if(confirm( "文档修改过,还没有保存,是否需要保存?"))
  17. {
  18. saveFileToUrl();
  19. }
  20. }
  21. }
  22. function saveFileToUrl() {
  23. var myUrl = document.forms[0].action;
  24. var fileName = document.getElementById("fileName").value;
  25. var fileId = document.getElementById("fileId").value;
  26. var result;
  27. if (IsFileOpened)
  28. {
  29. switch (OFFICE_CONTROL_OBJ.doctype)
  30. {
  31. case 1:
  32. fileType = "Word.Document";
  33. break;
  34. case 2:
  35. fileType = "Excel.Sheet";
  36. break;
  37. case 3:
  38. fileType = "PowerPoint.Show";
  39. break;
  40. case 4:
  41. fileType = "Visio.Drawing";
  42. break;
  43. case 5:
  44. fileType = "MSProject.Project";
  45. break;
  46. case 6:
  47. fileType = "WPS Doc";
  48. break;
  49. case 7:
  50. fileType = "Kingsoft Sheet";
  51. break;
  52. case 51:
  53. fileType = "PDF.NtkoDocument";
  54. break;
  55. default:
  56. fileType = "unkownfiletype";
  57. }
  58. result = OFFICE_CONTROL_OBJ.saveToURL(myUrl,
  59. "upLoadFile",
  60. "fileType=" + fileType,
  61. "",
  62. 0
  63. );
  64. // if(result == "文档保存成功。"){
  65. // OFFICE_CONTROL_OBJ.StatusCode = 0;
  66. // }else if(OFFICE_CONTROL_OBJ.StatusCode == 0){
  67. // OFFICE_CONTROL_OBJ.StatusCode = 101; //不支持的类型
  68. // }
  69. if(result == "文档保存成功。"){
  70. statusCode = 0;
  71. }else if(OFFICE_CONTROL_OBJ.StatusCode == 0){
  72. statusCode = 101;
  73. }
  74. //result = trim(result);
  75. document.getElementById("statusBar").innerHTML = "服务器返回信息:" + result;
  76. // alert(fileId);
  77. /*
  78. if (window.parent.opener)
  79. window.parent.opener.document.getElementById(fileId).value = result; */
  80. }
  81. }
  82. function setusername(username) {
  83. OFFICE_CONTROL_OBJ.WebUserName = username;
  84. }
  85. function trim(str) {
  86. //删除左右两端的空格
  87. str = str.replace(/(^\s*)|(\s*$)/g, "");
  88. return str;
  89. }
  90. function NTKO_OCX_CreateNewDoc(progId) {
  91. //alert(progId);
  92. OFFICE_CONTROL_OBJ.CreateNew(progId);
  93. }
  94. function NTKO_OCX_OpenDoc(fileUrl) {
  95. // console.log(fileUrl);
  96. OFFICE_CONTROL_OBJ.BeginOpenFromURL(fileUrl);
  97. }
  98. function setFileOpenedOrClosed(bool) {
  99. IsFileOpened = bool;
  100. fileType = OFFICE_CONTROL_OBJ.DocType;
  101. }
  102. function addServerSecSign()//不支持
  103. {
  104. var signUrl=document.all("secSignFileUrl").options[document.all("secSignFileUrl").selectedIndex].value;
  105. if(IsFileOpened)
  106. {
  107. if(OFFICE_CONTROL_OBJ.doctype==1||OFFICE_CONTROL_OBJ.doctype==2)
  108. {
  109. try
  110. {
  111. alert("正式版本用户请插入EKEY!\r\n\r\n此为电子印章系统演示功能,请购买正式版本!");
  112. OFFICE_CONTROL_OBJ.AddSecSignFromURL("ntko",signUrl);
  113. }
  114. catch(error){}
  115. }
  116. else
  117. {alert("不能在该类型文档中使用安全签名印章.");}
  118. }
  119. }
  120. function addLocalSecSign(username)//不支持
  121. {
  122. if(IsFileOpened)
  123. {
  124. if(OFFICE_CONTROL_OBJ.doctype==1||OFFICE_CONTROL_OBJ.doctype==2)
  125. {
  126. try
  127. {
  128. OFFICE_CONTROL_OBJ.AddSecSignFromLocal(username,"");
  129. }
  130. catch(error){
  131. }
  132. }
  133. else
  134. {alert("不能在该类型文档中使用安全签名印章.");}
  135. }
  136. }
  137. function addEkeySecSign(username)
  138. {
  139. if(IsFileOpened)
  140. {
  141. if(OFFICE_CONTROL_OBJ.doctype==1||OFFICE_CONTROL_OBJ.doctype==2)
  142. {
  143. try
  144. {OFFICE_CONTROL_OBJ.AddSecSignFromEkey(username);}
  145. catch(error){}
  146. }
  147. else
  148. {alert("不能在该类型文档中使用安全签名印章.");}
  149. }
  150. }
  151. function addHandSecSign(username)
  152. {
  153. if(IsFileOpened)
  154. {
  155. if(OFFICE_CONTROL_OBJ.doctype==1||OFFICE_CONTROL_OBJ.doctype==2)
  156. {
  157. try
  158. {OFFICE_CONTROL_OBJ.AddSecHandSign(username);}
  159. catch(error){}
  160. }
  161. else
  162. {alert("不能在该类型文档中使用安全签名印章.");}
  163. }
  164. }
  165. function addServerSign(signUrl)//不支持
  166. {
  167. if(IsFileOpened)
  168. {
  169. try
  170. {
  171. OFFICE_CONTROL_OBJ.AddSignFromURL("ntko",//印章的用户名
  172. signUrl,//印章所在服务器相对url
  173. 100,//左边距
  174. 100,//上边距 根据Relative的设定选择不同参照对象
  175. "ntko",//调用DoCheckSign函数签名印章信息,用来验证印章的字符串
  176. 3, //Relative,取值1-4。设置左边距和上边距相对以下对象所在的位置 1:光标位置;2:页边距;3:页面距离 4:默认设置栏,段落
  177. 100,//缩放印章,默认100%
  178. 1); //0印章位于文字下方,1位于上方
  179. }
  180. catch(error){}
  181. }
  182. }
  183. function addLocalSign()//不支持
  184. {
  185. if(IsFileOpened)
  186. {
  187. try
  188. {
  189. OFFICE_CONTROL_OBJ.AddSignFromLocal("ntko",//印章的用户名
  190. "",//缺省文件名
  191. true,//是否提示选择
  192. 100,//左边距
  193. 100,//上边距 根据Relative的设定选择不同参照对象
  194. "ntko",//调用DoCheckSign函数签名印章信息,用来验证印章的字符串
  195. 3, //Relative,取值1-4。设置左边距和上边距相对以下对象所在的位置 1:光标位置;2:页边距;3:页面距离 4:默认设置栏,段落
  196. 100,//缩放印章,默认100%
  197. 1); //0印章位于文字下方,1位于上方
  198. }
  199. catch(error){}
  200. }
  201. }
  202. function addPicFromLocal()
  203. {
  204. if(IsFileOpened)
  205. {
  206. try
  207. {
  208. OFFICE_CONTROL_OBJ.AddPicFromLocal("",//印章的用户名
  209. true,//缺省文件名
  210. false,//是否提示选择
  211. 100,//左边距
  212. 100,//上边距 根据Relative的设定选择不同参照对象
  213. 1, //Relative,取值1-4。设置左边距和上边距相对以下对象所在的位置 1:光标位置;2:页边距;3:页面距离 4:默认设置栏,段落
  214. 100,//缩放印章,默认100%
  215. 1); //0印章位于文字下方,1位于上方
  216. }
  217. catch(error){}
  218. }
  219. }
  220. function insertRedHeadFromUrl(headFileURL)
  221. {
  222. if(OFFICE_CONTROL_OBJ.doctype!=1)//OFFICE_CONTROL_OBJ.doctype=1为word文档
  223. {return;}
  224. OFFICE_CONTROL_OBJ.ActiveDocument.Application.Selection.HomeKey(6,0);//光标移动到文档开头
  225. OFFICE_CONTROL_OBJ.addtemplatefromurl(headFileURL);//在光标位置插入红头文档
  226. }
  227. function openTemplateFileFromUrl(templateUrl)
  228. {
  229. OFFICE_CONTROL_OBJ.openFromUrl(templateUrl);
  230. }
  231. function doHandSign()
  232. {
  233. /*if(OFFICE_CONTROL_OBJ.doctype==1||OFFICE_CONTROL_OBJ.doctype==2)//此处设置只允许在word和excel中盖章.doctype=1是"word"文档,doctype=2是"excel"文档
  234. {*/
  235. OFFICE_CONTROL_OBJ.DoHandSign2(
  236. "ntko",//手写签名用户名称
  237. "ntko",//signkey,DoCheckSign(检查印章函数)需要的验证密钥。
  238. 0,//left
  239. 0,//top
  240. 1,//relative,设定签名位置的参照对象.0:表示按照屏幕位置插入,此时,Left,Top属性不起作用。1:光标位置;2:页边距;3:页面距离 4:默认设置栏,段落(为兼容以前版本默认方式)
  241. 100);
  242. //}
  243. }
  244. function SetReviewMode(boolvalue)
  245. {
  246. if(OFFICE_CONTROL_OBJ.doctype==1)
  247. {
  248. OFFICE_CONTROL_OBJ.ActiveDocument.TrackRevisions = boolvalue;//设置是否保留痕迹
  249. }
  250. }
  251. function setShowRevisions(boolevalue)
  252. {
  253. if(OFFICE_CONTROL_OBJ.doctype==1)
  254. {
  255. OFFICE_CONTROL_OBJ.ActiveDocument.ShowRevisions =boolevalue;//设置是否显示痕迹
  256. }
  257. }
  258. function setFilePrint(boolvalue)
  259. {
  260. OFFICE_CONTROL_OBJ.fileprint=boolvalue;//是否允许打印
  261. }
  262. function setFileNew(boolvalue)
  263. {
  264. OFFICE_CONTROL_OBJ.FileNew=boolvalue;//是否允许新建
  265. }
  266. function setFileSaveAs(boolvalue)
  267. {
  268. OFFICE_CONTROL_OBJ.FileSaveAs=boolvalue;//是否允许另存为
  269. }
  270. function setIsNoCopy(boolvalue)
  271. {
  272. OFFICE_CONTROL_OBJ.IsNoCopy=boolvalue;//是否禁止粘贴
  273. }
  274. //验证文档控件自带印章功能盖的章
  275. function DoCheckSign()
  276. {
  277. if(IsFileOpened)
  278. {
  279. var ret = OFFICE_CONTROL_OBJ.DoCheckSign
  280. (
  281. false,/*可选参数 IsSilent 缺省为FAlSE,表示弹出验证对话框,否则,只是返回验证结果到返回值*/
  282. "ntko"//使用盖章时的signkey,这里为"ntko"
  283. );//返回值,验证结果字符串
  284. //alert(ret);
  285. }
  286. }
  287. function addSecKeyBoardComment(username)
  288. {
  289. if(IsFileOpened)
  290. {
  291. if(OFFICE_CONTROL_OBJ.doctype==1||OFFICE_CONTROL_OBJ.doctype==2)
  292. {
  293. try
  294. {OFFICE_CONTROL_OBJ.AddSecKeyBoardComment(username);}
  295. catch(error){}
  296. }
  297. else
  298. {alert("不能在该类型文档中使用键盘批注.");}
  299. }
  300. }
  301. //设置工具栏
  302. function setToolBar()
  303. {
  304. OFFICE_CONTROL_OBJ.ToolBars=!OFFICE_CONTROL_OBJ.ToolBars;
  305. }
  306. //控制是否显示所有菜单
  307. function setMenubar()
  308. {
  309. OFFICE_CONTROL_OBJ.Menubar=!OFFICE_CONTROL_OBJ.Menubar;
  310. }
  311. //控制”插入“菜单栏
  312. function setInsertMemu()
  313. {
  314. OFFICE_CONTROL_OBJ.IsShowInsertMenu=!OFFICE_CONTROL_OBJ.IsShowInsertMenu;
  315. }
  316. //控制”编辑“菜单栏
  317. function setEditMenu()
  318. {
  319. OFFICE_CONTROL_OBJ.IsShowEditMenu=!OFFICE_CONTROL_OBJ.IsShowEditMenu;
  320. }
  321. //控制”工具“菜单栏
  322. function setToolMenu()
  323. {
  324. OFFICE_CONTROL_OBJ.IsShowToolMenu=!OFFICE_CONTROL_OBJ.IsShowToolMenu;
  325. }
  326. //自定义菜单功能函数
  327. function initCustomMenus()
  328. {
  329. var myobj = OFFICE_CONTROL_OBJ;
  330. for(var menuPos=0;menuPos<3;menuPos++)
  331. {
  332. myobj.AddCustomMenu2(menuPos,"菜单"+menuPos+"(&"+menuPos+")");
  333. for(var submenuPos=0;submenuPos<10;submenuPos++)
  334. {
  335. if(1 ==(submenuPos % 3)) //主菜单增加分隔符。第3个参数是-1是在主菜单增加
  336. {
  337. myobj.AddCustomMenuItem2(menuPos,submenuPos,-1,false,"-",true);
  338. }
  339. else if(0 == (submenuPos % 2)) //主菜单增加子菜单,第3个参数是-1是在主菜单增加
  340. {
  341. myobj.AddCustomMenuItem2(menuPos,submenuPos,-1,true,"子菜单"+menuPos+"-"+submenuPos,false);
  342. //增加子菜单项目
  343. for(var subsubmenuPos=0;subsubmenuPos<9;subsubmenuPos++)
  344. {
  345. if(0 == (subsubmenuPos % 2))//增加子菜单项目
  346. {
  347. myobj.AddCustomMenuItem2(menuPos,submenuPos,subsubmenuPos,false,
  348. "子菜单项目"+menuPos+"-"+submenuPos+"-"+subsubmenuPos,false,menuPos*100+submenuPos*20+subsubmenuPos);
  349. }
  350. else //增加子菜单分隔
  351. {
  352. myobj.AddCustomMenuItem2(menuPos,submenuPos,subsubmenuPos,false,
  353. "-"+subsubmenuPos,true);
  354. }
  355. //测试禁用和启用
  356. if(2 == (subsubmenuPos % 4))
  357. {
  358. myobj.EnableCustomMenuItem2(menuPos,submenuPos,subsubmenuPos,false);
  359. }
  360. }
  361. }
  362. else //主菜单增加项目,第3个参数是-1是在主菜单增加
  363. {
  364. myobj.AddCustomMenuItem2(menuPos,submenuPos,-1,false,"菜单项目"+menuPos+"-"+submenuPos,false,menuPos*100+submenuPos);
  365. }
  366. //测试禁用和启用
  367. if(1 == (submenuPos % 4))
  368. {
  369. myobj.EnableCustomMenuItem2(menuPos,submenuPos,-1,false);
  370. }
  371. }
  372. }
  373. }
  374. //自定义菜单功能函数
  375. function initCustomMenus_gov()
  376. {
  377. var myobj = OFFICE_CONTROL_OBJ;
  378. myobj.AddCustomMenu2(0,"痕迹 ");
  379. myobj.AddCustomMenu2(1,"套红模板 ");
  380. myobj.AddCustomMenu2(2,"签批图章 ");
  381. // myobj.AddCustomMenu2(3,"盖章 ");
  382. myobj.AddCustomMenuItem2(0,0,-1,false,"显示痕迹",false);
  383. myobj.AddCustomMenuItem2(0,1,-1,false,"-",true);
  384. myobj.AddCustomMenuItem2(0,2,-1,false,"不显示痕迹",false);
  385. myobj.AddCustomMenuItem2(1,0,-1,true,"红头模板",false);
  386. myobj.AddCustomMenuItem2(1,1,-1,false,"-",true);
  387. myobj.AddCustomMenuItem2(1,2,-1,true,"普通模板",false);
  388. //myobj.AddCustomMenuItem2(2,0,-1,false,"手写签名",false);
  389. //myobj.AddCustomMenuItem2(2,1,-1,false,"-",true);
  390. myobj.AddCustomMenuItem2(2,2,-1,false,"Ekey签章",false);
  391. //myobj.AddCustomMenuItem2(2,3,-1,false,"-",true);
  392. //myobj.AddCustomMenuItem2(2,4,-1,false,"键盘批注",false);
  393. // myobj.AddCustomMenuItem2(3,0,-1,false,"生成PDF文件并盖章",false);
  394. var actionUrl = "templateAction.do?task=selectTemplateList";
  395. $.ajax({
  396. url : actionUrl,
  397. async : true,
  398. type : "post",
  399. data : {
  400. temp_state : "1",
  401. lost_flag : "0"
  402. },
  403. success : function(data) {
  404. var jsonobj = eval('(' + data + ')');
  405. var tempResult = jsonobj.Rows;
  406. var temp_type1 = 0;
  407. var temp_type0 = 0;
  408. for (var i = 0; i < tempResult.length; i++) {
  409. var temp_name = tempResult[i].temp_name;
  410. var temp_type = tempResult[i].temp_type;
  411. var gpath = tempResult[i].gpath;
  412. var universalid = tempResult[i].universalid;
  413. var mymenuID = 0;
  414. if(temp_type == "1"){
  415. mymenuID = parseInt(1*100+0*20+temp_type1);
  416. OFFICE_CONTROL_OBJ.AddCustomMenuItem2(1,0,temp_type1,false,temp_name,false,mymenuID);
  417. temp_type1++;
  418. }else if(temp_type == "0"){
  419. mymenuID = parseInt(1*100+2*20+temp_type0);
  420. OFFICE_CONTROL_OBJ.AddCustomMenuItem2(1,2,temp_type0,false,temp_name,false,mymenuID);
  421. temp_type0++;
  422. }
  423. //alert(menuID);
  424. var temp = new Object();
  425. temp.universalid = universalid;
  426. temp.mymenuID = mymenuID;
  427. temp.gpath = gpath;
  428. tempArray.push(temp);
  429. }
  430. },
  431. error : function() {
  432. }
  433. });
  434. }