PrintSample22.html 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>WEB打印控件LODOP的样例二十二:构建自己的纯WEB打印预览</title>
  6. <script language="javascript" src="LodopFuncs.js"></script>
  7. </head>
  8. <body>
  9. <h2><font color="#009999">演示构建自己的纯WEB打印预览:</font></h2>
  10. <div id="splist" style="OVERFLOW-Y: scroll; WIDTH: 100%; POSITION: HEIGHT: 200px">
  11. <table class="tableframe2" style="WORD-BREAK: break-all" width="97%" align="center" height="87">
  12. <tbody>
  13. <tr id="id1" style="BACKGROUND-COLOR: #dae2ed">
  14. <td align="center" width="15%" height="21" bgcolor="#C0C0C0">
  15. <p align="center"><b>商品编号</b></p>
  16. </td>
  17. <td align="center" width="31%" bgcolor="#C0C0C0" height="21"><b>商品名称</b></td>
  18. <td align="center" width="14%" bgcolor="#C0C0C0" height="21"><b>数量</b></td>
  19. <td align="center" width="15%" bgcolor="#C0C0C0" height="21"><b>单价(元)</b></td>
  20. </tr>
  21. <tr style="BACKGROUND-COLOR: #dae2ed">
  22. <td width="15%" height="11"><input type="text" id="BH1" value="001" style="text-align:center;border:0px;background-color:#dae2ed" readonly=true></td>
  23. <td align="center" width="31%" height="11"><input type="text" id="MC1" value="商品A" style="text-align:center;border:0px;background-color:#dae2ed" readonly=true></td>
  24. <td align="center" width="14%" height="11"><input type="text" id="SL1" value="10.00" style="text-align:center;border:0px;background-color:#dae2ed" readonly=true></td>
  25. <td align="center" width="15%" height="11"><input type="text" id="DJ1" value="500.00" style="text-align:center;border:0px;background-color:#dae2ed" readonly=true></td>
  26. </tr>
  27. <tr style="BACKGROUND-COLOR: #dae2ed">
  28. <td width="15%" height="1"><input type="text" id="BH2" value="002" style="text-align:center;border:0px;background-color:#dae2ed" readonly=true></td>
  29. <td align="center" width="31%" height="1"><input type="text" id="MC2" value="商品B" style="text-align:center;border:0px;background-color:#dae2ed" readonly=true></td>
  30. <td align="center" width="14%" height="1"><input type="text" id="SL2" value="15.00" style="text-align:center;border:0px;background-color:#dae2ed" readonly=true></td>
  31. <td align="center" width="15%" height="1"><input type="text" id="DJ2" value="20.00" style="text-align:center;border:0px;background-color:#dae2ed" readonly=true></td>
  32. </tr>
  33. <tr style="BACKGROUND-COLOR: #dae2ed">
  34. <td width="15%" height="1"><input type="text" id="BH3" value="003" style="text-align:center;border:0px;background-color:#dae2ed" readonly=true></td>
  35. <td align="center" width="31%" height="1"><input type="text" id="MC3" value="商品C" style="text-align:center;border:0px;background-color:#dae2ed" readonly=true></td>
  36. <td align="center" width="14%" height="1"><input type="text" id="SL3" value="6.00" style="text-align:center;border:0px;background-color:#dae2ed" readonly=true></td>
  37. <td align="center" width="15%" height="1"><input type="text" id="DJ3" value="400.00" style="text-align:center;border:0px;background-color:#dae2ed" readonly=true></td>
  38. </tr>
  39. </tbody>
  40. </table>
  41. </div>
  42. <p>下面结合样例十六和十九的功能,设计出自己的预览界面(打印上面的商品卡片):
  43. </p>
  44. <table border="1" width="100%">
  45. <tr>
  46. <td width="6%" align="center"><a href="javascript:myAction1()">适高显示</a></td>
  47. <td width="6%" align="center"><a href="javascript:myAction2()">正常显示</a></td>
  48. <td width="6%" align="center"><a href="javascript:myAction3()">适宽显示</a></td>
  49. <td width="6%" align="center"><a href="javascript:myAction4()">拉近显示+</a></td>
  50. <td width="6%" align="center"><a href="javascript:myAction5()">推远显示-</a></td>
  51. <td width="6%" align="center">缩放打印
  52. <select size="1" id="percent" onchange="myAction6()">
  53. <option value="0">30%</option>
  54. <option value="1">50%</option>
  55. <option value="2">60%</option>
  56. <option value="3">70%</option>
  57. <option value="4">80%</option>
  58. <option value="5">85%</option>
  59. <option value="6">90%</option>
  60. <option value="7">95%</option>
  61. <option value="8">100%</option>
  62. <option value="9">125%</option>
  63. <option value="10">150%</option>
  64. <option value="11">200%</option>
  65. <option value="12">按整宽</option>
  66. <option value="13">按整高</option>
  67. <option value="14" selected>按整页</option>
  68. <option value="15">整宽不变形</option>
  69. <option value="16">整高不变形</option>
  70. <option value="17">其它比例</option>
  71. </select>
  72. </td>
  73. <td width="5%" align="center"><a href="javascript:myAction7()">首页</a></td>
  74. <td width="6%" align="center"><a href="javascript:myAction8()">上一页</a></td>
  75. <td width="6%" align="center"><a href="javascript:myAction9()">下一页</a></td>
  76. <td width="5%" align="center"><a href="javascript:myAction10()">尾页</a></td>
  77. <td width="6%" align="center">到:<input size=1 id="inputpage" value="1" oninput="myAction11()" onpropertychange="myAction11()"></input>页</td>
  78. <td width="7%" align="center"><a href="javascript:myAction12()">打印设置</a></td>
  79. <td width="7%" align="center"><a href="javascript:myAction13()">打印全部</a></td>
  80. <td width="7%" align="center"><a href="javascript:myAction14()">打印本页</a></td>
  81. <td width="9%" align="center"><a href="javascript:myAction15()">旋转(横打时)</a></td>
  82. <td width="9%" align="center"><a href="javascript:myAction16()">关闭</a></td>
  83. </tr>
  84. <tr>
  85. <td width="100%" colspan="16">
  86. <object id="LODOP_X" classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA" width=100% height=500>
  87. <param name="Color" value="#ADD8E6">
  88. <embed id="LODOP_EM" TYPE="application/x-print-lodop" width=100% height=500 color="#ADD8E6" PLUGINSPAGE="install_lodop32.exe"></embed>
  89. </object>
  90. </td>
  91. </tr>
  92. </table>
  93. 说实在的,我以上设计的预览界面很是一般,但你可以发挥超文本优势,构建出与众不同的预览界面。下面这些数据或许有用:
  94. <p>
  95. <input type="button" value="获得纸张宽度(0.1mm):" onclick="javascript:getMyValue('PRINTSETUP_PAGE_WIDTH',document.getElementById('S1'))">
  96. <input type="text" id="S1" size="20">
  97. </p>
  98. <p>
  99. <input type="button" value="获得纸张高度(0.1mm):" onclick="javascript:getMyValue('PRINTSETUP_PAGE_HEIGHT',document.getElementById('S2'))">
  100. <input type="text" id="S2" size="20">
  101. </p>
  102. <p>
  103. <input type="button" value="可打印宽度(0.1mm):" onclick="javascript:getMyValue('PRINTSETUP_SIZE_WIDTH',document.getElementById('S3'))">
  104. <input type="text" id="S3" size="20">
  105. </p>
  106. <p>
  107. <input type="button" value="可打印高度(0.1mm):" onclick="javascript:getMyValue('PRINTSETUP_SIZE_HEIGHT',document.getElementById('S4'))">
  108. <input type="text" id="S4" size="20">
  109. </p>
  110. <p>
  111. <input type="button" value="不可打上边距(0.1mm):" onclick="javascript:getMyValue('PRINTSETUP_TOPMARGIN',document.getElementById('S5'))">
  112. <input type="text" id="S5" size="20">
  113. </p>
  114. <p>
  115. <input type="button" value="不可打左边距(0.1mm):" onclick="javascript:getMyValue('PRINTSETUP_LEFTMARGIN',document.getElementById('S6'))">
  116. <input type="text" id="S6" size="20">
  117. </p>
  118. <p>
  119. <input type="button" value="纸张(表单)名:" onclick="javascript:getMyValue('PRINTSETUP_PAGESIZE_NAME',document.getElementById('S7'))">
  120. <input type="text" id="S7" size="20"></input>
  121. </p>
  122. <p>
  123. <input type="button" value="所选打印机序号:" onclick="javascript:getMyValue('PRINTSETUP_PRINTER_INDEX',document.getElementById('U1'))">
  124. <input type="text" id="U1" size="20"></input>
  125. </p>
  126. <p>
  127. <input type="button" value="所选打印机名:" onclick="javascript:getMyValue('PRINTSETUP_PRINTER_NAME',document.getElementById('S8'))">
  128. <input type="text" id="S8" size="50"></input>
  129. </p>
  130. <p>
  131. <input type="button" value="打印方向:" onclick="javascript:getMyValue('PRINTSETUP_ORIENT',document.getElementById('S9'))">
  132. <input type="text" id="S9" size="5"></input>0:纵向打印 1:横向打印
  133. </p>
  134. <p>
  135. <input type="button" value="已打印的次数:" onclick="javascript:getMyValue('PRINTED_TIMES',document.getElementById('T1'))">
  136. <input type="text" id="T1" size="6"></input>
  137. </p>
  138. <p>
  139. <input type="button" value="设置每次打印的份数:" onclick="javascript:getMyValue('PRINTSETUP_COPIES',document.getElementById('S10'))">
  140. <input type="text" id="S10" size="5"></input>
  141. </p>
  142. <p>
  143. <input type="button" value="每份的总页数:" onclick="javascript:getMyValue('PRINTSETUP_PAGE_COUNT',document.getElementById('S11'))">
  144. <input type="text" id="S11" size="20">(执行打印或预览指令后才正确)
  145. </p>
  146. <p>
  147. <input type="button" value="起始页号:" onclick="javascript:getMyValue('PRINTSETUP_FIRST_PAGE',document.getElementById('S12'))">
  148. <input type="text" id="S12" size="5"></input> (执行打印或预览指令后才正确)
  149. </p>
  150. <p>
  151. <input type="button" value="结束页号:" onclick="javascript:getMyValue('PRINTSETUP_LAST_PAGE',document.getElementById('S13'))">
  152. <input type="text" id="S13" size="5"></input> (执行打印或预览指令后才正确)
  153. </p>
  154. <p>
  155. <input type="button" value="缩放打印的比例:" onclick="javascript:getMyValue('PRINTSETUP_PERCENT',document.getElementById('S14'))">
  156. <input type="text" id="S14" size="5"></input><br>
  157. 0:30% 1:50% 2:60% 3:70% 4:80% 5:85% 6:90% 7:95% 8:100% 9:125% 10:150% 11:200% 12:按整宽 13:按整高 14:按整页 15:整宽不变形 16:整高不变形 17:自定比例
  158. </p>
  159. <p>
  160. <input type="button" value="当前页号(预览时才能读):" onclick="javascript:getMyValue('PREVIEW_PAGE_NUMBER',document.getElementById('Y1'))">
  161. <input type="text" id="Y1" size="20">
  162. </p>
  163. <p>
  164. <input type="button" value="缩放显示的比例(预览时才能读):" onclick="javascript:getMyValue('PREVIEW_ZOOM_STATE',document.getElementById('Y2'))">
  165. <input type="text" id="Y2" size="5"></input>
  166. 0:适高 1:适宽 2:缩25% 3:缩50% 4:缩75% 5:正常 6:放150% 7:放200% 8:放300% 9:放500%
  167. </p>
  168. <p><a href="PrintSampIndex.html">&lt;&lt;回样例目录</a>
  169. </p>
  170. <script language="javascript" type="text/javascript">
  171. var LODOP; //声明为全局变量
  172. var blPreviewOpen=false;
  173. function myAction1(){
  174. if (!blPreviewOpen) OpenPreview();
  175. LODOP.DO_ACTION("PREVIEW_ZOOM_HIGHT",0);
  176. };
  177. function myAction2(){
  178. if (!blPreviewOpen) OpenPreview();
  179. LODOP.DO_ACTION("PREVIEW_ZOOM_NORMAL",0);
  180. };
  181. function myAction3(){
  182. if (!blPreviewOpen) OpenPreview();
  183. LODOP.DO_ACTION("PREVIEW_ZOOM_WIDTH",0);
  184. };
  185. function myAction4(){
  186. if (!blPreviewOpen) OpenPreview();
  187. LODOP.DO_ACTION("PREVIEW_ZOOM_IN",0);
  188. };
  189. function myAction5(){
  190. if (!blPreviewOpen) OpenPreview();
  191. LODOP.DO_ACTION("PREVIEW_ZOOM_OUT",0);
  192. };
  193. function myAction6(){
  194. if (!blPreviewOpen) OpenPreview();
  195. LODOP.DO_ACTION("PREVIEW_PERCENT",document.getElementById('percent').value);
  196. };
  197. function myAction7(){
  198. if (!blPreviewOpen) OpenPreview();
  199. LODOP.DO_ACTION("PREVIEW_GOFIRST",0);
  200. };
  201. function myAction8(){
  202. if (!blPreviewOpen) OpenPreview();
  203. LODOP.DO_ACTION("PREVIEW_GOPRIOR",0);
  204. };
  205. function myAction9(){
  206. if (!blPreviewOpen) OpenPreview();
  207. LODOP.DO_ACTION("PREVIEW_GONEXT",0);
  208. };
  209. function myAction10(){
  210. if (!blPreviewOpen) OpenPreview();
  211. LODOP.DO_ACTION("PREVIEW_GOLAST",0);
  212. };
  213. function myAction11(){
  214. if (!blPreviewOpen) OpenPreview();
  215. LODOP.DO_ACTION("PREVIEW_GOTO",document.getElementById('inputpage').value);//PREVIEW_GOSKIP
  216. };
  217. function myAction12(){
  218. if (!blPreviewOpen) OpenPreview();
  219. LODOP.DO_ACTION("PREVIEW_SETUP",0);
  220. };
  221. function myAction13(){
  222. if (!blPreviewOpen) OpenPreview();
  223. var iPageCount=LODOP.GET_VALUE("PREVIEW_PAGE_COUNT",0);//获得页数
  224. LODOP.SET_PRINT_MODE("PRINT_START_PAGE",1);
  225. LODOP.SET_PRINT_MODE("PRINT_END_PAGE",iPageCount);
  226. LODOP.DO_ACTION("PREVIEW_PRINT",0);
  227. };
  228. function myAction14(){
  229. if (!blPreviewOpen) OpenPreview();
  230. var iThisNumber=LODOP.GET_VALUE("PREVIEW_PAGE_NUMBER",0);//获得当前页号
  231. LODOP.SET_PRINT_MODE("PRINT_START_PAGE",iThisNumber);
  232. LODOP.SET_PRINT_MODE("PRINT_END_PAGE",iThisNumber);
  233. LODOP.DO_ACTION("PREVIEW_PRINT",0);
  234. };
  235. function myAction15(){
  236. if (!blPreviewOpen) OpenPreview();
  237. LODOP.DO_ACTION("PREVIEW_ROTATE",0);
  238. };
  239. function myAction16(){
  240. if (!blPreviewOpen) return;
  241. LODOP.DO_ACTION("PREVIEW_CLOSE",0);
  242. blPreviewOpen=false;
  243. };
  244. function OpenPreview() {
  245. LODOP=getLodop(document.getElementById('LODOP_X'),document.getElementById('LODOP_EM'));
  246. LODOP.PRINT_INIT("打印控件Lodop功能演示_自己设计预览界面");
  247. LODOP.SET_PRINT_STYLE("FontSize",21);
  248. for(i=1;i<4;i++){
  249. var strBH=document.getElementById("BH"+i).value;
  250. var strMC=document.getElementById("MC"+i).value;
  251. var strSL=document.getElementById("SL"+i).value;
  252. var strDJ=document.getElementById("DJ"+i).value;
  253. LODOP.NEWPAGEA();
  254. LODOP.ADD_PRINT_RECT(10,18,324,392,0,1);
  255. LODOP.ADD_PRINT_TEXT(61,58,258,54,"商品编号:"+strBH);
  256. LODOP.ADD_PRINT_TEXT(145,58,258,54,"商品名称:"+strMC);
  257. LODOP.ADD_PRINT_TEXT(229,58,258,54,"商品数量:"+strSL);
  258. LODOP.ADD_PRINT_TEXT(312,58,258,54,"商品单价:"+strDJ);
  259. }
  260. //LODOP.SET_PRINT_PAGESIZE(0,1380,2450,"A4");
  261. LODOP.SET_PRINT_MODE("PRINT_PAGE_PERCENT","Full-Page");//按整页缩放
  262. LODOP.SET_SHOW_MODE("HIDE_PAPER_BOARD",true);//隐藏走纸板
  263. LODOP.SET_PREVIEW_WINDOW(0,3,0,0,0,""); //隐藏工具条,设置适高显示
  264. LODOP.SET_SHOW_MODE("PREVIEW_IN_BROWSE",true); //预览界面内嵌到页面内
  265. LODOP.PREVIEW();
  266. blPreviewOpen=true;
  267. };
  268. function getMyValue(strType,oResultOB){
  269. var LODOP=getLodop(document.getElementById('LODOP_X'),document.getElementById('LODOP_EM'));
  270. if (LODOP.CVERSION) CLODOP.On_Return=function(TaskID,Value){if (oResultOB) oResultOB.value=Value;};
  271. var stResult=LODOP.GET_VALUE(strType,"0");
  272. if (!LODOP.CVERSION) oResultOB.value=stResult;
  273. };
  274. if (needCLodop()) {
  275. window.On_CLodop_Opened=function(){
  276. OpenPreview();
  277. window.On_CLodop_Opened=null;
  278. };
  279. } else
  280. window.onload = function(){OpenPreview();};
  281. </script>
  282. </body>
  283. </html>