LodopFuncs.js 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. var CreatedOKLodop7766=null;
  2. //====判断是否需要安装CLodop云打印服务器:====
  3. function needCLodop(){
  4. try{
  5. var ua=navigator.userAgent;
  6. if (ua.match(/Windows\sPhone/i) !=null) return true;
  7. if (ua.match(/iPhone|iPod/i) != null) return true;
  8. if (ua.match(/Android/i) != null) return true;
  9. if (ua.match(/Edge\D?\d+/i) != null) return true;
  10. var verTrident=ua.match(/Trident\D?\d+/i);
  11. var verIE=ua.match(/MSIE\D?\d+/i);
  12. var verOPR=ua.match(/OPR\D?\d+/i);
  13. var verFF=ua.match(/Firefox\D?\d+/i);
  14. var x64=ua.match(/x64/i);
  15. if ((verTrident==null)&&(verIE==null)&&(x64!==null))
  16. return true; else
  17. if ( verFF !== null) {
  18. verFF = verFF[0].match(/\d+/);
  19. if ((verFF[0]>= 41)||(x64!==null)) return true;
  20. } else
  21. if ( verOPR !== null) {
  22. verOPR = verOPR[0].match(/\d+/);
  23. if ( verOPR[0] >= 32 ) return true;
  24. } else
  25. if ((verTrident==null)&&(verIE==null)) {
  26. var verChrome=ua.match(/Chrome\D?\d+/i);
  27. if ( verChrome !== null ) {
  28. verChrome = verChrome[0].match(/\d+/);
  29. if (verChrome[0]>=41) return true;
  30. };
  31. };
  32. return false;
  33. } catch(err) {return true;};
  34. };
  35. //====页面引用CLodop云打印必须的JS文件:====
  36. if (needCLodop()) {
  37. var head = document.head || document.getElementsByTagName("head")[0] || document.documentElement;
  38. var oscript = document.createElement("script");
  39. oscript.src ="http://localhost:8000/CLodopfuncs.js?priority=1";
  40. head.insertBefore( oscript,head.firstChild );
  41. //引用双端口(8000和18000)避免其中某个被占用:
  42. oscript = document.createElement("script");
  43. oscript.src ="http://localhost:18000/CLodopfuncs.js?priority=0";
  44. head.insertBefore( oscript,head.firstChild );
  45. };
  46. //====获取LODOP对象的主过程:====
  47. function getLodop(oOBJECT,oEMBED){
  48. var strHtmInstall="<br><font color='#FF00FF'>打印控件未安装!点击这里<a href='/shares/lodop/install_lodop32.exe' target='_self'>执行安装</a>,安装后请刷新页面或重新进入。</font>";
  49. var strHtmUpdate="<br><font color='#FF00FF'>打印控件需要升级!点击这里<a href='/shares/lodop/install_lodop32.exe' target='_self'>执行升级</a>,升级后请重新进入。</font>";
  50. var strHtm64_Install="<br><font color='#FF00FF'>打印控件未安装!点击这里<a href='/shares/lodop/install_lodop64.exe' target='_self'>执行安装</a>,安装后请刷新页面或重新进入。</font>";
  51. var strHtm64_Update="<br><font color='#FF00FF'>打印控件需要升级!点击这里<a href='/shares/lodop/install_lodop64.exe' target='_self'>执行升级</a>,升级后请重新进入。</font>";
  52. var strHtmFireFox="<br><br><font color='#FF00FF'>(注意:如曾安装过Lodop旧版附件npActiveXPLugin,请在【工具】->【附加组件】->【扩展】中先卸它)</font>";
  53. var strHtmChrome="<br><br><font color='#FF00FF'>(如果此前正常,仅因浏览器升级或重安装而出问题,需重新执行以上安装)</font>";
  54. var strCLodopInstall="<br><font color='#FF00FF'>CLodop云打印服务(localhost本地)未安装启动!点击这里<a href='/shares/lodop/CLodop_Setup_for_Win32NT.exe' target='_self'>执行安装</a>,安装后请刷新页面。</font>";
  55. var strCLodopUpdate="<br><font color='#FF00FF'>CLodop云打印服务需升级!点击这里<a href='/shares/lodop/CLodop_Setup_for_Win32NT.exe' target='_self'>执行升级</a>,升级后请刷新页面。</font>";
  56. var LODOP;
  57. try{
  58. var isIE = (navigator.userAgent.indexOf('MSIE')>=0) || (navigator.userAgent.indexOf('Trident')>=0);
  59. if (needCLodop()) {
  60. try{ LODOP=getCLodop();} catch(err) {};
  61. if (!LODOP && document.readyState!=="complete") {alert("C-Lodop没准备好,请稍后再试!"); return;};
  62. if (!LODOP) {
  63. if (isIE) document.write(strCLodopInstall); else
  64. document.body.innerHTML=strCLodopInstall+document.body.innerHTML;
  65. return;
  66. } else {
  67. if (CLODOP.CVERSION<"3.0.2.5") {
  68. if (isIE) document.write(strCLodopUpdate); else
  69. document.body.innerHTML=strCLodopUpdate+document.body.innerHTML;
  70. };
  71. if (oEMBED && oEMBED.parentNode) oEMBED.parentNode.removeChild(oEMBED);
  72. if (oOBJECT && oOBJECT.parentNode) oOBJECT.parentNode.removeChild(oOBJECT);
  73. };
  74. } else {
  75. var is64IE = isIE && (navigator.userAgent.indexOf('x64')>=0);
  76. //=====如果页面有Lodop就直接使用,没有则新建:==========
  77. if (oOBJECT!=undefined || oEMBED!=undefined) {
  78. if (isIE) LODOP=oOBJECT; else LODOP=oEMBED;
  79. } else if (CreatedOKLodop7766==null){
  80. LODOP=document.createElement("object");
  81. LODOP.setAttribute("width",0);
  82. LODOP.setAttribute("height",0);
  83. LODOP.setAttribute("style","position:absolute;left:0px;top:-100px;width:0px;height:0px;");
  84. if (isIE) LODOP.setAttribute("classid","clsid:2105C259-1E0C-4534-8141-A753534CB4CA");
  85. else LODOP.setAttribute("type","application/x-print-lodop");
  86. document.documentElement.appendChild(LODOP);
  87. CreatedOKLodop7766=LODOP;
  88. } else LODOP=CreatedOKLodop7766;
  89. //=====Lodop插件未安装时提示下载地址:==========
  90. if ((LODOP==null)||(typeof(LODOP.VERSION)=="undefined")) {
  91. if (navigator.userAgent.indexOf('Chrome')>=0)
  92. document.body.innerHTML=strHtmChrome+document.body.innerHTML;
  93. if (navigator.userAgent.indexOf('Firefox')>=0)
  94. document.body.innerHTML=strHtmFireFox+document.body.innerHTML;
  95. if (is64IE) document.write(strHtm64_Install); else
  96. if (isIE) document.write(strHtmInstall); else
  97. document.body.innerHTML=strHtmInstall+document.body.innerHTML;
  98. return LODOP;
  99. };
  100. };
  101. if (LODOP.VERSION<"6.2.2.0") {
  102. if (!needCLodop()){
  103. if (is64IE) document.write(strHtm64_Update); else
  104. if (isIE) document.write(strHtmUpdate); else
  105. document.body.innerHTML=strHtmUpdate+document.body.innerHTML;
  106. };
  107. return LODOP;
  108. };
  109. //===如下空白位置适合调用统一功能(如注册语句、语言选择等):===
  110. //===========================================================
  111. return LODOP;
  112. } catch(err) {alert("getLodop出错:"+err);};
  113. };
  114. var LODOP; //声明为全局变量
  115. function prn1_preview() {
  116. CreateOneFormPage();
  117. LODOP.PREVIEW();
  118. };
  119. function prn1_print() {
  120. CreateOneFormPage();
  121. LODOP.PRINT();
  122. };
  123. function CreateOneFormPage(){
  124. LODOP=getLodop();
  125. LODOP.PRINT_INIT("流程表单打印");
  126. LODOP.SET_PRINT_STYLE("FontSize",18);
  127. LODOP.SET_PRINT_STYLE("Bold",1);
  128. // LODOP.ADD_PRINT_TEXT(50,231,260,39,"打印页面部分内容");
  129. LODOP.ADD_PRINT_HTM(0,0,"100%","100%","URL:"+window.location.href);
  130. LODOP.SET_PRINT_STYLEA(0,"IDTagForPick","formIns");
  131. };
  132. function prn1_custom_preview() {
  133. LODOP=getLodop();
  134. LODOP.PRINT_INIT("流程表单打印");
  135. LODOP.SET_PRINT_STYLE("FontSize",18);
  136. LODOP.SET_PRINT_STYLE("Bold",1);
  137. // LODOP.ADD_PRINT_TEXT(50,231,260,39,"打印页面部分内容");
  138. // LODOP.ADD_PRINT_HTM(0,0,"100%","100%","URL:"+window.location.href);
  139. // LODOP.SET_PRINT_STYLEA(0,"IDTagForPick","formIns");
  140. strHtml=document.getElementsByTagName("iframe")[0].contentWindow.document.documentElement.innerHTML;
  141. LODOP.ADD_PRINT_HTM("10mm","5mm","100%","100%",strHtml);
  142. LODOP.PREVIEW();
  143. };
  144. function prn2_preview(formId) {
  145. CreateTwoFormPage(formId);
  146. LODOP.PREVIEW();
  147. };
  148. function CreateTwoFormPage(formId){
  149. LODOP=getLodop();
  150. LODOP.PRINT_INIT("打印");
  151. // LODOP.ADD_PRINT_RECT(70,27,634,242,0,1);
  152. // LODOP.ADD_PRINT_TEXT(29,236,279,38,"页面内容改变布局打印");
  153. LODOP.SET_PRINT_STYLEA(2,"FontSize",18);
  154. LODOP.SET_PRINT_STYLEA(2,"Bold",1);
  155. // LODOP.ADD_PRINT_HTM(88,40,321,185,document.getElementById("form1").innerHTML);
  156. // LODOP.ADD_PRINT_HTM(87,355,285,187,document.getElementById(formId).innerHTM);
  157. LODOP.ADD_PRINT_HTM(0,0,"100%","100%",document.getElementById(formId).innerHTML);
  158. // LODOP.ADD_PRINT_TEXT(319,58,500,30,"注:其中《表单一》按显示大小,《表单二》在程序控制宽度(285px)内自适应调整");
  159. };
  160. function prn3_preview(){
  161. LODOP=getLodop();
  162. LODOP.PRINT_INIT("打印控件功能演示_Lodop功能_全页");
  163. LODOP.ADD_PRINT_HTM(0,0,"100%","100%",document.documentElement.innerHTML);
  164. LODOP.PREVIEW();
  165. };
  166. function prn4_preview() {
  167. CreateOneProcess();
  168. // CreateOneFormPage();
  169. LODOP.PREVIEW();
  170. };
  171. function CreateOneProcess(){
  172. LODOP=getLodop();
  173. LODOP.PRINT_INIT("流转过程打印");
  174. LODOP.SET_PRINT_STYLE("FontSize",18);
  175. LODOP.SET_PRINT_STYLE("Bold",1);
  176. strHtml=document.getElementsByTagName("iframe")[0].contentWindow.document.documentElement.innerHTML;
  177. // var iformIns = document.getElementById("formIns");
  178. // iformIns.height = "100px";
  179. // iformIns.height = formIns.document.body.scrollHeight + 100;
  180. LODOP.ADD_PRINT_HTM("10mm","5mm","100%","100%",strHtml);
  181. LODOP.NEWPAGEA();
  182. LODOP.ADD_PRINT_TABLE(10,100,"100%","100%",document.getElementById("process").innerHTML);
  183. };