PrintSample7.html 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  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><font color="#0000FF" size="3">GET_PRINTER_COUNT;获得打印机个数<br>
  12. GET_PRINTER_NAME(intPrinterIndex);用序号获得打印机名,一般序号从0开始,-1特指默认打印机;<br>
  13. SET_PRINTER_INDEX(oIndexOrName);按序号或名称指定打印机,选定后禁止手工重选;<br>
  14. </font><font color="#0000FF" size="3">SET_PRINTER_INDEXA(IndexorName);按序号或名称指定打印机,选定后允许手工重选;<br>
  15. SELECT_PRINTER;弹出界面选打印机并返回其序号,序号从0开始,返回-1表示放弃<br>
  16. SET_PRINT_COPIES(intCopies);指定每次打印份数,缺省为1</font></p>
  17. <p>下面演示如何实现打印输出控制:</p>
  18. <p>
  19. 1:获得本系统内的打印机<input type="button" value="个数:" onclick="document.getElementById('T1').value=getPrinterCount()">
  20. <input type="text" id="T1" size="5">
  21. </p>
  22. <p>2:获得第<input type="text" id="T2" size="1" value="0">号
  23. <input type="button" value="打印机名称:" onclick="document.getElementById('T3').value=getPrinterName(document.getElementById('T2').value)">
  24. <input type="text" id="T3" size="30">及其<select size="1" id="Select01">
  25. <option value="DriverName">驱动名称</option>
  26. <option value="PortName">端口名称</option>
  27. <option value="Orientation">打印方向</option>
  28. <option value="PaperSize">当前纸张大小(编号)</option>
  29. <option value="PaperLength">当前纸张长度(0.1mm)</option>
  30. <option value="PaperWidth">当前纸张宽度(0.1mm)</option>
  31. <option value="Copies">打印份数</option>
  32. <option value="DefaultSource">纸张来源</option>
  33. <option value="PrintQuality">打印质量(dpi)</option>
  34. <option value="Color">是否彩色</option>
  35. <option value="Duplex">双面打印</option>
  36. <option value="FormName">表单名称</option>
  37. <option value="Comment">注释</option>
  38. <option value="DriverVersion">驱动版本号</option>
  39. <option value="DCOrientation">横打旋角度数</option>
  40. <option value="MaxExtentWidth">最大纸张宽度(0.1mm)</option>
  41. <option value="MaxExtentLength">最大纸张长度(0.1mm)</option>
  42. <option value="MinExtentWidth">最小纸张宽度(0.1mm)</option>
  43. <option value="MinExtentlength">最小纸张长度(0.1mm)</option>
  44. </select><input type="button" value="的值:"
  45. onclick="document.getElementById('T31').value=getPrinterOther(document.getElementById('T2').value,document.getElementById('Select01').value)">
  46. <input type="text" id="T31" size="30">
  47. </p>
  48. <p>3:指定序号(或名称)为<input type="text" id="T4" size="15" value="0">的打印机来<input type="button" value="打印预览"
  49. onclick="PreviewByPrinterIndex(document.getElementById('T4').value)">或<input type="button" value="直接打印" onclick="PrintByPrinterIndex(document.getElementById('T4').value)">测试页,在预览窗口不能另选。 </p>
  50. <p>4:指定序号(或名称)为<input type="text" id="T5" size="15" value="0" >的打印机来<input type="button" value="打印预览"
  51. onClick="PreviewByPrinterName(document.getElementById('T5').value)">或<input type="button" value="直接打印" onClick="PrintByPrinterName(document.getElementById('T5').value)">测试页,在预览窗口可以另选。</p>
  52. <p>5:<input type="button" value="临时选择一个为默认打印机"
  53. onClick="SelectAsDefaultPrinter()">&nbsp;&nbsp; <input type="button" value="用默认打印"
  54. onClick="PrintByDefaultPrinter()"></p>
  55. <p>6:打印份数为<input type="text" id="T6" size="2" value="2" name="copies"><input type="button" value="开始打印"
  56. onclick="PrintMoreCopies(document.getElementById('T6').value)"></p>
  57. <p>7:目标打印机、打印方向、纸张大小和打印份数等设置项目被控制后,默认是禁止重选的,<br>
  58. &nbsp;&nbsp;可用<font color="#0000FF" size="3">SET_PRINT_MODE("RESELECT_XXX",true);</font>语句允许操作者在打印预览里重选。
  59. <br><input type="button" value="不可重选的打印预览" onclick="PreviewReSelect(false)">&nbsp;&nbsp;&nbsp;&nbsp;
  60. <input type="button" value="可重选的打印预览" onclick="PreviewReSelect(true)">
  61. </p>
  62. <p><a href="PrintSampIndex.html">&lt;&lt;回样例目录</a></p>
  63. <script language="javascript" type="text/javascript">
  64. var LODOP; //声明为全局变量
  65. function getPrinterCount() {
  66. LODOP=getLodop();
  67. return LODOP.GET_PRINTER_COUNT();
  68. };
  69. function getPrinterName(iPrinterNO) {
  70. LODOP=getLodop();
  71. return LODOP.GET_PRINTER_NAME(iPrinterNO);
  72. };
  73. function getPrinterOther(iPrinterNO,strTypeKEY) {
  74. LODOP=getLodop();
  75. return LODOP.GET_PRINTER_NAME(iPrinterNO+":"+strTypeKEY);
  76. //例如:LODOP.GET_PRINTER_NAME("0:DriverName");
  77. };
  78. function PreviewByPrinterIndex(intPrinterIndex) {
  79. CreatePrintPage();
  80. if (LODOP.SET_PRINTER_INDEX(intPrinterIndex))
  81. LODOP.PREVIEW();
  82. };
  83. function PrintByPrinterIndex(intPrinterIndex) {
  84. CreatePrintPage();
  85. //LODOP.SET_PRINT_MODE("TRYLINKPRINTER_NOALERT",true);//这个语句设置网络共享打印机连接不通时是否提示一下
  86. if (LODOP.SET_PRINTER_INDEX(intPrinterIndex))
  87. LODOP.PRINT();
  88. };
  89. function PreviewByPrinterName(strPrinterName) {
  90. CreateHTMPrintPage();
  91. if (LODOP.SET_PRINTER_INDEXA(strPrinterName))
  92. LODOP.PREVIEW();
  93. };
  94. function PrintByPrinterName(strPrinterName) {
  95. CreateHTMPrintPage();
  96. if (LODOP.SET_PRINTER_INDEXA(strPrinterName))
  97. LODOP.PRINT();
  98. };
  99. function SelectAsDefaultPrinter() {
  100. LODOP=getLodop();
  101. if (LODOP.CVERSION) {
  102. LODOP.On_Return=function(TaskID,Value){if(Value>=0) alert("选择成功!"); else alert("选择失败!");};
  103. LODOP.SELECT_PRINTER();
  104. return;
  105. };
  106. if (LODOP.SELECT_PRINTER()>=0)
  107. alert("选择成功!"); else alert("选择失败!");
  108. };
  109. function PrintByDefaultPrinter() {
  110. CreatePrintPage();
  111. LODOP.PRINT();
  112. };
  113. function PrintMoreCopies(intCopies) {
  114. CreatePrintPage();
  115. if (LODOP.SET_PRINT_COPIES(intCopies)) LODOP.PRINT();
  116. else alert("设置打印份数失败!");
  117. };
  118. function PreviewReSelect(blCanSelect) {
  119. CreatePrintPage();
  120. LODOP.SET_PRINTER_INDEX(-1);//指定打印机
  121. LODOP.SET_PRINT_PAGESIZE(1,0,0,"A4");//指定方向和纸张
  122. LODOP.SET_PRINT_COPIES(2);//指定份数
  123. LODOP.SET_PRINT_MODE("RESELECT_PRINTER",blCanSelect);
  124. LODOP.SET_PRINT_MODE("RESELECT_ORIENT",blCanSelect);
  125. LODOP.SET_PRINT_MODE("RESELECT_PAGESIZE",blCanSelect);
  126. LODOP.SET_PRINT_MODE("RESELECT_COPIES",blCanSelect);
  127. LODOP.PREVIEW();
  128. };
  129. function CreatePrintPage() {
  130. LODOP=getLodop();
  131. LODOP.PRINT_INIT("打印控件功能演示_Lodop功能_测试页一");
  132. LODOP.ADD_PRINT_RECT(77,74,409,345,0,2);
  133. LODOP.ADD_PRINT_ELLIPSE(351,140,140,60,0,1);
  134. LODOP.ADD_PRINT_RECT(299,133,344,42,1,1);
  135. LODOP.ADD_PRINT_TEXT(91,242,70,21,"测试页标题");
  136. LODOP.ADD_PRINT_TEXT(201,94,20,94,"测试页内容");
  137. LODOP.ADD_PRINT_TEXT(129,131,345,31,"测试内容一:9号宋体字是默认字体");
  138. LODOP.ADD_PRINT_TEXT(161,131,345,31,"测试内容二:11号普通宋体字正体");
  139. LODOP.SET_PRINT_STYLEA(0,"FontSize",11);
  140. LODOP.ADD_PRINT_TEXT(193,131,345,31,"测试内容三:13.5 号宋体字的粗体");
  141. LODOP.SET_PRINT_STYLEA(0,"FontSize",13.5);
  142. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  143. LODOP.ADD_PRINT_TEXT(225,131,345,31,"测试内容四:15号宋体字的斜体");
  144. LODOP.SET_PRINT_STYLEA(0,"FontSize",15);
  145. LODOP.SET_PRINT_STYLEA(0,"Italic",1);
  146. LODOP.ADD_PRINT_TEXT(260,131,345,31,"测试内容五:16号斜体字带下划线");
  147. LODOP.SET_PRINT_STYLEA(0,"FontSize",16);
  148. LODOP.SET_PRINT_STYLEA(0,"Italic",1);
  149. LODOP.SET_PRINT_STYLEA(0,"Underline",1);
  150. LODOP.ADD_PRINT_TEXT(308,144,318,29,"测试内容六:黑体字居中");
  151. LODOP.SET_PRINT_STYLEA(0,"FontName","黑体");
  152. LODOP.SET_PRINT_STYLEA(0,"FontSize",13);
  153. LODOP.SET_PRINT_STYLEA(0,"Alignment",2);
  154. LODOP.ADD_PRINT_TEXT(350,300,170,66,"测试内容七:单行文字右靠齐超出区域宽度时则折行显示");
  155. LODOP.SET_PRINT_STYLEA(0,"FontSize",11);
  156. LODOP.SET_PRINT_STYLEA(0,"Alignment",3);
  157. LODOP.ADD_PRINT_TEXT(428,79,400,23,"以上演示了位置、区域、字体、图形、线型等打印布局和风格。");
  158. LODOP.ADD_PRINT_LINE(119,76,118,481,0,1);
  159. LODOP.ADD_PRINT_LINE(78,127,420,128,0,1);
  160. LODOP.ADD_PRINT_LINE(79,76,118,127,0,1);
  161. };
  162. function CreateHTMPrintPage() {
  163. LODOP=getLodop();
  164. LODOP.PRINT_INIT("打印控件功能演示_Lodop功能_测试页二");
  165. var strHTML="<!doctype><body><font style='font-size:16px;'>字体大小:16px</font><br>";
  166. strHTML=strHTML+"<font style='font-size:16pt;'>字体大小:16pt</font><br>";
  167. strHTML=strHTML+"<font style='font-size:x-small'>字体大小:x-small</font><br>";
  168. strHTML=strHTML+"<font style='font-size:small'>字体大小:small</font><br>";
  169. strHTML=strHTML+"<font style='font-size:medium'>字体大小:medium</font><br>";
  170. strHTML=strHTML+"<font style='font-size:large'>字体大小:large</font><br>";
  171. strHTML=strHTML+"<font style='font-size:x-large'>字体大小:x-large</font><br>";
  172. strHTML=strHTML+"<font style='font-size:XX-large'>字体大小:XX-large</font><br>";
  173. strHTML=strHTML+"<font size='1'>字体大小:1</font><br>";
  174. strHTML=strHTML+"<font size='2'>字体大小:2</font><br>";
  175. strHTML=strHTML+"<font size='3'>字体大小:3</font><br>";
  176. strHTML=strHTML+"<font size='4'>字体大小:4</font><br>";
  177. strHTML=strHTML+"<font size='5'>字体大小:5</font><br>";
  178. strHTML=strHTML+"<font size='6'>字体大小:6</font><br>";
  179. strHTML=strHTML+"<font size='7'>字体大小:7</font><br>";
  180. strHTML=strHTML+"<font size='-1'>字体大小:-1</font><br>";
  181. strHTML=strHTML+"<font size='-2'>字体大小:-2</font><br></body>";
  182. LODOP.ADD_PRINT_HTM(5,5,"100%","100%",strHTML);
  183. LODOP.SET_PRINT_STYLEA(0,"Horient",3);
  184. LODOP.SET_PRINT_STYLEA(0,"Vorient",3);
  185. };
  186. </script>
  187. </body>
  188. </html>