PrintSample5.html 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  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><b><font color="#009999">演示控制纸张大小、打印方向、连续打印和位置基点:</font></b></h2>
  10. <p>一般的打印是程序控制一个逻辑布局,在不同的打印纸张上打印出相应效果。</p>
  11. <p>但有些打印业务需要固定纸张大小从而实现连续打印,此时可用如下控制函数:</p>
  12. <p><font color="#0000FF" size="3">SET_PRINT_PAGESIZE(intOrient,intPageWidth,intPageHeight,strPageName);
  13. </font></p>
  14. <p><font size="3"><b>参数说明:</b></font><font color="#0000FF" size="3">
  15. <br>
  16. </font><font size="3"><font color="#0000FF">intOrient:</font>打印方向及纸张类型<font color="#0000FF"><br>
  17. </font><font color="#0000FF">&nbsp;&nbsp;&nbsp; </font>1---纵向打印,固定纸张;&nbsp;<br>
  18. <font color="#0000FF">&nbsp;&nbsp;&nbsp; </font>2---横向打印,固定纸张;&nbsp;&nbsp;<br>
  19. <font color="#0000FF">&nbsp;&nbsp;&nbsp; </font>3---纵向打印,宽度固定,高度按打印内容的高度自适应(见<a href="PrintSample18.html">样例18</a>);<br>
  20. <font color="#0000FF">&nbsp;&nbsp;&nbsp; </font>0---方向不定,由操作者自行选择或按打印机缺省设置。<font color="#0000FF"><br>
  21. </font><font color="#0000FF"><br>
  22. intPageWidth:<br>
  23. </font><font color="#0000FF">&nbsp;&nbsp;&nbsp; </font>纸张宽,单位为0.1mm 譬如该参数值为45,则表示4.5mm,计量精度是0.1mm。</font></p>
  24. <p><font size="3"><font color="#0000FF">intPageHeight:</font><br>
  25. <font color="#0000FF">&nbsp;&nbsp;&nbsp; </font>固定纸张时该参数是纸张高;高度自适应时该参数是纸张底边的空白高,计量单位与纸张宽一样。</font></p>
  26. <p><font color="#0000FF" size="3">
  27. strPageName:</font><font size="3"><br>
  28. </font><font size="3"><font color="#0000FF">&nbsp;&nbsp;&nbsp; </font>纸张类型名,
  29. <font color="#0000FF">intPageWidth</font><font size="3">等于零时本参数才有效,具体名称参见操作系统打印服务属性中的格式定义。<br>
  30. &nbsp;&nbsp;&nbsp; 关键字“CreateCustomPage”会在系统内建立一个名称为“LodopCustomPage”自定义纸张类型。<br>
  31. </font></p>
  32. <p><font size="3"><b>演示自定义纸张:</b></font></p>
  33. <p>1:用宽<input type="text" size="5" value="1380" id="W1">(138mm)高<input type="text" size="4" value="880" id="H1">(88mm)
  34. 的动态纸张<a href="javascript:Preview1()">打印预览1</a>一份交行受理书,打印方向不定。</p>
  35. <p>2:选择如下打印机:<input type="radio" id="Radio1" name="RadioS1" checked >默认打印机
  36. <input type="radio" id="Radio2" name="RadioS1" onclick="CreatePrinterList()">指定打印机:
  37. <select id="PrinterList" size="1"></select> </p>
  38. <p>&nbsp;&nbsp; 用上一步设置的动态纸张大小,打印方向是正(纵)向,见<a href="javascript:Preview2()">打印预览2</a>。</p>
  39. <p>3:选择上一步所指定打印机的如下纸张类型:<input type="radio" id="Radio3" name="RadioS2" checked >不指定纸张
  40. <input type="radio" id="Radio4" name="RadioS2" onclick="CreatePagSizeList()">指定纸张:<select id="PagSizeList" size="1"></select> </p>
  41. <p>&nbsp;&nbsp;打印方向不定,见<a href="javascript:Preview3()">打印预览3</a>。</p>
  42. <p>4:用宽<input type="text" size="5" value="1400" id="W4">(140mm)高<input type="text" size="4" value="900" id="H4">(90mm)进行
  43. <font size="3"><a href="javascript:Preview4()">打印预览4</a></font>的同时并建立<font size="3">名称为</font>LodopCustomPage的自定义类型。<br>
  44. &nbsp;这种方式可以适应某些不能动态设置纸张大小的打印机,新建的纸张可用SET_PRINT_MODE重命名。</p>
  45. <p><i>说明:<br>
  46. &nbsp; </i>由于有些打印机对自定义的纸张不一定完全支持,所以同样纸张在不同打印机上预览结果可能不一样。<br>
  47. &nbsp; Lodop的这种预览更接近实际打印输出,但在开发时要注意区分,建议安装一个虚拟打印机来辅助测试。</p>
  48. <p><font size="3"><b>演示连续打印:</b></font></p>
  49. <p>5:用以上动态设置纸张的方法,循环执行<a href="javascript:Print5()">直接打印5</a>,可以实现无间隔的连续打印输出。</p>
  50. <p><b>控制位置基点:</b></p>
  51. <p>6:为使内容不出轨,输出位置一般是以“可打区域”边缘为基点的,但由于各种打印机物理边距不一样,<br>
  52. &nbsp;这样就造成同一程序用不同打印机输出的位置有差异,这对通用套打是非常不利的,此时可用如下语句:<br>
  53. &nbsp;<font color="#0000FF">LODOP.SET_PRINT_MODE(&quot;POS_BASEON_PAPER&quot;,true);</font><br>
  54. &nbsp;该语句可使输出以纸张边缘为基点,<font size="3">进入<a href="javascript:Preview6()">打印预览6</a></font>选不同物理边距打印机看看位置是否一致。</p>
  55. <p><b>改变Windows默认打印设置:</b></p>
  56. <i>系统默认设置对Lodop控制输出影响很小,不需要改变。提供如下额外功能是为了满足特殊需要:</i><br><br>
  57. 7:
  58. 用如下语句可指定Windows默认打印机:<br>
  59. &nbsp;<font color="#0000FF">LODOP.SET_PRINT_MODE(&quot;WINDOW_DEFPRINTER&quot;,打印机名称或序号);</font><br>
  60. &nbsp;点<a href="javascript:SetPrint7()">设置打印7</a>把第2步选的打印机设置为操作系统的默认打印机,成功返回OK,否则返回错误信息。<br><br>
  61. 8:
  62. 用如下语句可指定Windows默认纸张:<br>
  63. &nbsp;<font color="#0000FF">LODOP.SET_PRINT_MODE(&quot;WINDOW_DEFPAGESIZE:打印机名称或序号&quot;,纸张名称);</font><br>
  64. &nbsp;点<a href="javascript:SetPrint8()">设置打印8</a>把第3步所选纸张设置为第2步所选打印机的默认纸张,成功返回OK,否则返回错误信息。<br>
  65. <p><a href="PrintSampIndex.html">&lt;&lt;回样例目录</a></p>
  66. <script language="javascript" type="text/javascript">
  67. var LODOP; //声明为全局变量
  68. function Preview1() {
  69. LODOP=getLodop();
  70. LODOP.PRINT_INITA(0,0,522,333,"打印控件功能演示_Lodop功能_自定义纸张1");
  71. LODOP.SET_PRINT_PAGESIZE(0,document.getElementById('W1').value,document.getElementById('H1').value,"A4");
  72. AddPrintContent("10101010101010","郭德强");
  73. LODOP.PREVIEW();
  74. };
  75. function Preview2() {
  76. LODOP=getLodop();
  77. LODOP.PRINT_INITA(0,0,522,333,"打印控件功能演示_Lodop功能_自定义纸张2");
  78. LODOP.SET_PRINTER_INDEX(getSelectedPrintIndex());
  79. LODOP.SET_PRINT_PAGESIZE(1,document.getElementById('W1').value,document.getElementById('H1').value,"");
  80. AddPrintContent("10101010101010","郭德强");
  81. LODOP.PREVIEW();
  82. };
  83. function Preview3() {
  84. LODOP=getLodop();
  85. LODOP.PRINT_INITA(0,0,522,333,"");
  86. LODOP.SET_PRINTER_INDEX(getSelectedPrintIndex());
  87. LODOP.SET_PRINT_PAGESIZE(0,0,0,getSelectedPageSize());
  88. AddPrintContent("10101010101010","郭德强");
  89. LODOP.PREVIEW();
  90. };
  91. function Preview4() {
  92. LODOP=getLodop();
  93. LODOP.PRINT_INITA(0,0,522,333,"打印控件功能演示_Lodop功能_自定义纸张4");
  94. LODOP.SET_PRINTER_INDEX(getSelectedPrintIndex());
  95. LODOP.SET_PRINT_PAGESIZE(1,document.getElementById('W4').value,document.getElementById('H4').value,"CreateCustomPage");
  96. //LODOP.SET_PRINT_MODE("CREATE_CUSTOM_PAGE_NAME","我的纸张名");//对新建的纸张重命名
  97. AddPrintContent("10101010101010","郭德强");
  98. LODOP.PREVIEW();
  99. };
  100. function Print5() {
  101. LODOP=getLodop();
  102. LODOP.PRINT_INIT("");
  103. LODOP.SET_PRINT_PAGESIZE(1,document.getElementById('W1').value,document.getElementById('H1').value,"A3");
  104. AddPrintContent("10101010101010","郭德强");
  105. LODOP.PRINT();
  106. LODOP.PRINT_INIT("");
  107. LODOP.SET_PRINT_PAGESIZE(1,document.getElementById('W1').value,document.getElementById('H1').value,"A3");
  108. AddPrintContent("10101010101012","于谦");
  109. LODOP.PRINT();
  110. };
  111. function Preview6() {
  112. LODOP=getLodop();
  113. LODOP.PRINT_INIT("打印控件功能演示_Lodop功能_控制基本位置6");
  114. LODOP.SET_PRINT_MODE("POS_BASEON_PAPER",true);
  115. AddPrintContent("10101010101010","郭德强");
  116. LODOP.PREVIEW();
  117. };
  118. function SetPrint7() {
  119. LODOP=getLodop();
  120. LODOP.PRINT_INIT("");
  121. if (LODOP.CVERSION) CLODOP.On_Return=function(TaskID,Value){alert(Value);};
  122. var strResult=LODOP.SET_PRINT_MODE("WINDOW_DEFPRINTER",getSelectedPrintIndex());
  123. if (!LODOP.CVERSION) alert(strResult);
  124. };
  125. function SetPrint8() {
  126. LODOP=getLodop();
  127. LODOP.PRINT_INIT("");
  128. if (LODOP.CVERSION) CLODOP.On_Return=function(TaskID,Value){alert(Value);};
  129. var strResult=LODOP.SET_PRINT_MODE("WINDOW_DEFPAGESIZE:"+getSelectedPrintIndex(),getSelectedPageSize());
  130. //var strResult=LODOP.SET_PRINT_MODE("WINDOW_DEFPAGESIZE:"+getSelectedPrintIndex(),"LodopCustomPage");
  131. if (!LODOP.CVERSION) alert(strResult);
  132. };
  133. function AddPrintContent(strCode,strName) {
  134. LODOP.SET_PRINT_STYLE("FontColor",16711680);
  135. LODOP.ADD_PRINT_RECT(62,16,459,217,0,1);
  136. LODOP.ADD_PRINT_TEXT(15,137,157,25,"交通银行( )");
  137. LODOP.SET_PRINT_STYLEA(2,"FontName","隶书");
  138. LODOP.SET_PRINT_STYLEA(2,"FontSize",11);
  139. LODOP.SET_PRINT_STYLEA(2,"FontColor",0);
  140. LODOP.ADD_PRINT_TEXT(41,213,100,20,"2008年11月9日");
  141. LODOP.ADD_PRINT_TEXT(17,281,100,20,"个人业务受理书");
  142. LODOP.SET_PRINT_STYLEA(4,"FontColor",0);
  143. LODOP.ADD_PRINT_TEXT(75,37,431,20,"机构:109110 交易代码:010110");
  144. LODOP.ADD_PRINT_TEXT(102,37,431,20,"个人网银用户签约成功!");
  145. LODOP.ADD_PRINT_TEXT(129,37,431,20,"网点名称:东城分行营业部");
  146. LODOP.ADD_PRINT_TEXT(156,37,431,20,"主卡卡号:"+strCode);
  147. LODOP.ADD_PRINT_TEXT(183,37,431,20,"客户姓名:"+strName);
  148. LODOP.ADD_PRINT_TEXT(212,37,431,20,"登陆方式:用户名登陆");
  149. LODOP.ADD_PRINT_TEXT(17,218,60,20,"东城分行");
  150. LODOP.ADD_PRINT_TEXT(249,169,221,20,"以上内容已核实确认无误,客户签名:");
  151. LODOP.ADD_PRINT_TEXT(106,484,23,127,"第二联客户留联");
  152. LODOP.SET_PRINT_STYLEA(13,"FontColor",0);
  153. LODOP.ADD_PRINT_TEXT(284,21,74,20,"授权员");
  154. LODOP.SET_PRINT_STYLEA(14,"FontColor",0);
  155. LODOP.ADD_PRINT_TEXT(284,200,74,20,"复核员");
  156. LODOP.SET_PRINT_STYLEA(15,"FontColor",0);
  157. LODOP.ADD_PRINT_TEXT(284,346,74,20,"经办员");
  158. LODOP.SET_PRINT_STYLEA(16,"FontColor",0);
  159. };
  160. function getSelectedPrintIndex(){
  161. if (document.getElementById("Radio2").checked)
  162. return document.getElementById("PrinterList").value;
  163. else return -1;
  164. };
  165. function getSelectedPageSize(){
  166. if (document.getElementById("Radio4").checked)
  167. return document.getElementById("PagSizeList").value;
  168. else return "";
  169. };
  170. function CreatePrinterList(){
  171. if (document.getElementById('PrinterList').innerHTML!="") return;
  172. LODOP=getLodop();
  173. var iPrinterCount=LODOP.GET_PRINTER_COUNT();
  174. for(var i=0;i<iPrinterCount;i++){
  175. var option=document.createElement('option');
  176. option.innerHTML=LODOP.GET_PRINTER_NAME(i);
  177. option.value=i;
  178. document.getElementById('PrinterList').appendChild(option);
  179. };
  180. };
  181. function clearPageListChild(){
  182. var PagSizeList =document.getElementById('PagSizeList');
  183. while(PagSizeList.childNodes.length>0){
  184. var children = PagSizeList.childNodes;
  185. for(i=0;i<children.length;i++){
  186. PagSizeList.removeChild(children[i]);
  187. };
  188. };
  189. }
  190. function CreatePagSizeList(){
  191. LODOP=getLodop();
  192. clearPageListChild();
  193. var strPageSizeList=LODOP.GET_PAGESIZES_LIST(getSelectedPrintIndex(),"\n");
  194. var Options=new Array();
  195. Options=strPageSizeList.split("\n");
  196. for (i in Options)
  197. {
  198. var option=document.createElement('option');
  199. option.innerHTML=Options[i];
  200. option.value=Options[i];
  201. document.getElementById('PagSizeList').appendChild(option);
  202. }
  203. }
  204. </script>
  205. </body>
  206. </html>