PrintSample17.html 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>WEB打印控件LODOP的样例十七:直接读写端口数据</title>
  6. <script language="javascript" src="LodopFuncs.js"></script>
  7. </head>
  8. <body>
  9. <h2><font color="#009999">演示直接读写端口数据(如发指令到打印设备):</font>
  10. </h2>
  11. <h3><font color="#009999">演示一:利用打印机驱动传递</font></h3>
  12. <p>向打印机发送原始数据的函数格式是: <font color="#0000FF">SEND_PRINT_RAWDATA(strRawData)</font></p>
  13. <p>参数含义:<font color="#0000FF">strRawData:</font>数据或指令值,字符(JS中可用String的fromCharCode方法生成)型。</p>
  14. <p><b>演示如下:</b></p>
  15. 数据内容:<br>
  16. <textarea rows="5" id="T1" cols="68">
  17. ^XA
  18. ^FO50,50
  19. ^BY3^BCN,100,Y,N,N
  20. ^FD>;382436>6CODE39>752375152^FS
  21. ^XZ
  22. </textarea>
  23. <p>先选打印设备(可参考<a href="PrintSample7.html">样例七</a>),这里<a href="javascript:MySelect()">弹出窗口选打印机</a>
  24. 选择后<a href="javascript:MySendData()">开始发送</a>。
  25. </p>
  26. <h3><font color="#009999">演示二:直接写端口</font></h3>
  27. <p>直接写端口的函数格式是: <font color="#0000FF">WRITE_PORT_DATA(strPortName,strData)</font></p>
  28. <p>参数含义:</p>
  29. <p><font color="#0000FF">strPortName:</font>端口名,譬如&quot;LPT1&quot;&quot;COM1&quot;等等。</p>
  30. <p><font color="#0000FF">strData:</font>数据或指令值,字符型。</p>
  31. <p><b>下面演示向LPT1端口写如下控制字符:</b></p>
  32. <p>CHR(27)+','+CHR(112)+','+CHR(0)+','+CHR(128)+','+CHR(128) <a href="javascript:MyWritePort()">开始写入端口</a></p>
  33. <p><b>读写COM端口前可能需要设置参数:</b></p>
  34. <p>用关键字“mode com1”<a href="javascript:MyWriteCom()">设置COM1的参数如下</a>:2400,n,8,1</p>
  35. <p><font color="#009999"><b>演示三:从端口读数据</b></font></p>
  36. <p>从端口读数的函数格式是: <font color="#0000FF">READ_PORT_DATA(strPortNameData)</font></p>
  37. <p>参数含义:<font color="#0000FF">strPortNameData:</font>端口名数据(其中也可附加通讯参数和先写的数据)。</p>
  38. <p><input type="button" value="从COM1读数:" onclick="javascript:document.getElementById('data1').value=MyReadComData()">或者
  39. <input type="button" value="对COM1先写后读:" onclick="javascript:document.getElementById('data1').value=MyWriteAndReadData()"><br>
  40. <textarea rows="5" id="data1" cols="68"></textarea></p>
  41. <h3><font color="#009999">演示四:直接写远程Host端口</font></h3>
  42. <p>直接写远程端口的语句仍然是<font color="#0000FF">WRITE_PORT_DATA(strPortName,strData)</font>但参数strPortName格式特别,类似如下:</p>
  43. <p><font color="#0000FF">WRITE_PORT_DATA(&quot;HOST:192.168.1.1;PORT:9200&quot;,&quot;指令或数据内容&quot;);</font></p>
  44. <p><font color="#0000FF">WRITE_PORT_DATA(&quot;HOST:127.0.0.1;PORT:9100;CHARSET:utf-8;TIMEOUT:5000&quot;,&quot;指令或数据内容&quot;);</font></p>
  45. <p>下面演示向IP是<input type="text" id="Y1" size="10" value="192.168.1.99">的打印机端口<input type="text" id="Y2" size="5" value="9100">
  46. <a href="javascript:MyWriteRemotePort()">写如下ZPL打印指令</a>:</p>
  47. <textarea rows="5" id="Y3" cols="68">
  48. ^XA
  49. ^FO50,50
  50. ^BY3^BCN,100,Y,N,N
  51. ^FD>;382436>6CODE39>752375152^FS
  52. ^XZ
  53. </textarea>
  54. </p>
  55. <p>读写时字符编码集用
  56. <select size="1" id="Y4">
  57. <option value="UTF-8">UTF-8</option>
  58. <option value="UTF-7">UTF-7</option>
  59. <option value="ANSI">ANSI</option>
  60. <option value="GBK">GBK</option>
  61. <option value="GB2312">GB2312</option>
  62. <option value="BIG5">BIG5</option>
  63. <option value="EUC-JP">EUC-JP</option>
  64. <option value="UTF-16">UTF-16</option>
  65. <option value="UTF-16BE">UTF-16BE</option>
  66. </select>,等待对方返回消息的超时时间为<input type="text" id="Y5" size="5" value="5000">毫秒。</p>
  67. <p><a href="PrintSampIndex.html">&lt;&lt;回样例目录</a>
  68. </p>
  69. <script language="javascript" type="text/javascript">
  70. var LODOP; //声明为全局变量
  71. function MySelect() {
  72. LODOP=getLodop();
  73. LODOP.SELECT_PRINTER();
  74. };
  75. function MySendData() {
  76. LODOP=getLodop();
  77. strData=String.fromCharCode(27,112,1,128,128)+document.getElementById("T1").value;
  78. LODOP.SET_PRINT_MODE("SEND_RAW_DATA_ENCODE","UTF-8");//UTF-8 UTF-7 UNICODE ANSI UTF-16 UTF-16BE GBK BIG5 EUC-JP
  79. if (LODOP.CVERSION) {
  80. LODOP.On_Return=function(TaskID,Value){ if (Value) alert("发送命令成功"); else alert("发送命令失败!"); };
  81. LODOP.SEND_PRINT_RAWDATA(strData);
  82. return;
  83. };
  84. if (LODOP.SEND_PRINT_RAWDATA(strData))
  85. alert("发送命令成功!"); else alert("发送命令失败!");
  86. };
  87. function MyWritePort() {
  88. LODOP=getLodop();
  89. strData=String.fromCharCode(27)+','+String.fromCharCode(112)+','+String.fromCharCode(0)+','+String.fromCharCode(128)+','+String.fromCharCode(128);
  90. if (LODOP.CVERSION) {
  91. LODOP.On_Return=function(TaskID,Value){ if (Value) alert("写端口成功!"); else alert("写端口失败!"); };
  92. LODOP.WRITE_PORT_DATA("LPT1",strData);
  93. return;
  94. };
  95. if (LODOP.WRITE_PORT_DATA("LPT1",strData))
  96. alert("写端口成功!"); else alert("写端口失败!");
  97. };
  98. function MyWriteCom() {
  99. LODOP=getLodop();
  100. strConfig="mode com1:2400,n,8,1";
  101. if (LODOP.CVERSION) {
  102. LODOP.On_Return=function(TaskID,Value){
  103. if (Value) alert("设置端口参数成功!"); else {
  104. alert("设置端口参数失败");
  105. LODOP.On_Return=function(TaskID,Value){alert("设置端口参数失败,LastErrorID:"+Value);};
  106. LODOP.GET_SYSTEM_INFO("GetLastError");
  107. };
  108. };
  109. LODOP.WRITE_PORT_DATA("COM1",strConfig);
  110. return;
  111. };
  112. if (LODOP.WRITE_PORT_DATA("COM1",strConfig))
  113. alert("设置端口参数成功!"); else alert("设置端口参数失败,LastErrorID:"+LODOP.GET_SYSTEM_INFO("GetLastError"));
  114. };
  115. function MyReadComData() {
  116. LODOP=getLodop();
  117. if (LODOP.CVERSION) {
  118. LODOP.On_Return=function(TaskID,Value){
  119. if (Value=="") document.getElementById('data1').value="端口数据空"; else
  120. document.getElementById('data1').value=Value;
  121. };
  122. LODOP.READ_PORT_DATA("COM1");
  123. return "";
  124. };
  125. strData=LODOP.READ_PORT_DATA("COM1");
  126. if (strData=="") return "端口数据空";else return strData;
  127. };
  128. function MyWriteAndReadData() {
  129. //用单个语句对COM1端口设置通讯参数后先写数据,停顿200毫秒后再读,各参数值用换行符隔开:
  130. LODOP=getLodop();
  131. if (LODOP.CVERSION) {
  132. LODOP.On_Return=function(TaskID,Value){
  133. if (Value=="") {
  134. document.getElementById('data1').value="端口数据空";
  135. LODOP.On_Return=function(TaskID,Value){document.getElementById('data1').value+=",LastErrorID:"+Value;}
  136. LODOP.GET_SYSTEM_INFO("GetLastError");
  137. } else
  138. document.getElementById('data1').value=Value;
  139. };
  140. LODOP.READ_PORT_DATA("COM1"+String.fromCharCode(10)+"mode com1:2400,n,8,1,2000,1000\nSleep:200\nIamGoodMan");
  141. return;
  142. };
  143. var strData=LODOP.READ_PORT_DATA("COM1"+String.fromCharCode(10)+"mode com1:2400,n,8,1,2000,1000\nSLEEP:200\nIamGoodMan");
  144. if (strData=="") return "端口数据空,LastErrorID:"+LODOP.GET_SYSTEM_INFO("GetLastError");else return strData;
  145. };
  146. function MyWriteRemotePort() {
  147. LODOP=getLodop();
  148. strHost=document.getElementById('Y1').value;
  149. strPort=document.getElementById('Y2').value;
  150. strCharSet=document.getElementById('Y4').value;
  151. strTimeOut=document.getElementById('Y5').value;
  152. strData=document.getElementById('Y3').value;
  153. strPortSS="HOST:"+strHost+";PORT:"+strPort+";CHARSET:"+strCharSet+";TIMEOUT:"+strTimeOut;
  154. if (LODOP.CVERSION) {
  155. LODOP.On_Return=function(TaskID,Value){
  156. alert("写远程端口结果:"+Value);
  157. };
  158. LODOP.WRITE_PORT_DATA(strPortSS,strData);
  159. return;
  160. };
  161. strResult=LODOP.WRITE_PORT_DATA(strPortSS,strData);
  162. alert("写远程端口结果:"+strResult);
  163. };
  164. </script>
  165. </body>
  166. </html>