当前位置:   article > 正文

用纯HTML写一个凭证并打印

用纯HTML写一个凭证并打印

最近有个需求,需要通过网页把单子打印出来,就用html实现了一个,主要使用了windwos自带的print打印,全部代码如下:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  5. <title>标题</title>
  6. <style type="text/css" media="all">
  7. * {
  8. margin: 0;
  9. padding: 0;
  10. font-size: 12px
  11. }
  12. table {
  13. width: 90%;
  14. border: 1px solid #000;
  15. border-collapse: collapse;
  16. margin: 5px auto
  17. }
  18. th,
  19. td {
  20. border: 1px solid #000;
  21. border-collapse: collapse;
  22. padding: 8px 5px
  23. }
  24. h1 {
  25. font-size: 24px
  26. }
  27. @media print {
  28. .no-print {
  29. display: none;
  30. }
  31. }
  32. .headStyle{
  33. width: 90%;
  34. display: flex;
  35. justify-content: space-between;
  36. border-collapse: collapse;
  37. margin: 5px auto;
  38. }
  39. .headTitleLift{
  40. display: flex;
  41. }
  42. .title {
  43. display: flex;
  44. flex-direction: column;
  45. align-items: end;
  46. }
  47. .title div {
  48. margin-bottom: 5px; /* 为了增加行间距 */
  49. }
  50. .content div {
  51. margin-bottom: 5px; /* 为了增加行间距 */
  52. }
  53. .foot{
  54. display: flex;
  55. flex-direction: row;
  56. align-items: flex-start;
  57. width: 90%;
  58. justify-content: space-between;
  59. border-collapse: collapse;
  60. margin: 5px auto;
  61. }
  62. .foot div {
  63. margin-right: 50px; /* 设置项目间距为10像素 */
  64. }
  65. </style>
  66. </head>
  67. <body>
  68. <div class="no-print" style="text-align:center;margin:5px">
  69. <button onClick="window.print()"> 打 印</button>
  70. </div>
  71. <h1 style="text-align: center;">某某的单子要打印</h1>
  72. <p style="text-align: center;">
  73. 日期: <span id="currentDate"></span>
  74. </p>
  75. <div class="headStyle">
  76. <div class="headTitleLift">
  77. <div class="title">
  78. <div >水单位:</div>
  79. <div >对应水票编号:</div>
  80. </div>
  81. <div class="content">
  82. <div >XXXX</div>
  83. <div >203023032</div>
  84. </div>
  85. </div>
  86. <div class="headTitleLift">
  87. <div class="title">
  88. <div >供水渠系:</div>
  89. <div >灌季:</div>
  90. </div>
  91. <div class="content">
  92. <div >XX有限公司</div>
  93. <div >冬季 </div>
  94. </div>
  95. </div>
  96. </div>
  97. <div class="table-box">
  98. <table>
  99. <thead>
  100. <tr>
  101. <th> 斗口</th>
  102. <th> 申请面积(亩)</th>
  103. <th> 灌溉定额(方/亩)</th>
  104. <th> 申请水量(方)</th>
  105. <th> 开始时间</th>
  106. <th> 结束时间</th>
  107. <th> 计划用时(时分秒)</th>
  108. <th> 斗口流量(方/秒)</th>
  109. <th> 备注</th>
  110. </tr>
  111. </thead>
  112. <tbody>
  113. <tr>
  114. <td> 1</td>
  115. <td> 数据1</td>
  116. <td> 数据2</td>
  117. <td> 数据3</td>
  118. <td> 数据4</td>
  119. <td> 数据5</td>
  120. <td> 数据6</td>
  121. <td> 数据7</td>
  122. <td> 数据8</td>
  123. </tr>
  124. <tr>
  125. <td> 2</td>
  126. <td> 数据1</td>
  127. <td> 数据2</td>
  128. <td> 数据3</td>
  129. <td> 数据4</td>
  130. <td> 数据5</td>
  131. <td> 数据6</td>
  132. <td> 数据7</td>
  133. <td> 数据8</td>
  134. </tr>
  135. </tbody>
  136. <tfoot>
  137. <tr>
  138. <th>合计:</th>
  139. <th></th>
  140. <th></th>
  141. <th></th>
  142. <th></th>
  143. <th></th>
  144. <th> 300.00</th>
  145. <th> 300.00</th>
  146. <th> 300.00</th>
  147. </tr>
  148. </tfoot>
  149. </table>
  150. </div>
  151. <div class="foot">
  152. <div>水管所审核:单打独斗</div>
  153. <div>配水员:李刚</div>
  154. <div>支(渠)长:可</div>
  155. <div>用水单位(签字):单打独斗</div>
  156. </div>
  157. <script>
  158. // 获取当前日期
  159. var currentDate = new Date();
  160. var year = currentDate.getFullYear();
  161. var month = currentDate.getMonth() + 1;
  162. var day = currentDate.getDate();
  163. // 更新页面上的日期显示
  164. document.getElementById("currentDate").innerText = year + "年" + month + "月" + day + "日";
  165. </script>
  166. </body>
  167. </html>

以下是代码中每行的作用解释:

1. `<!DOCTYPE html>`:声明文档类型为HTML5,告诉浏览器以HTML5标准解析页面

2. `<html>`:HTML文档的根元素,包含整个HTML内容。

3. `<head>`:包含了文档的元数据,如标题、样式表和脚本等信息。

4. `<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>`:设置文档的字符编码为UTF-8,确保正确显示中文等特殊字符。

5. `<title>配水单</title>`:设置页面的标题为"配水单"。

6. `<style type="text/css" media="all">`:开始定义内联CSS样式。

7. `* { margin: 0; padding: 0; font-size: 12px }`:设置全局样式,将所有元素的外边距、内边距和字体大小设为12像素。

8. `table { ... }`:定义表格的样式,包括宽度、边框等。

9. `th, td { ... }`:定义表头和单元格的样式,包括边框和内边距。

10. `h1 { font-size: 24px }`:设置h1标题的字体大小为24像素。

11. `@media print { ... }`:定义在打印模式下的样式,这里设置了`.no-print`类在打印时不显示。

12. `.headStyle { ... }`、`.headTitleLift { ... }`、`.title { ... }`等:定义了一些自定义样式,用于配水单头部和表格的布局。

13. `<body>`:包含了页面的主体内容。

14. `<div class="no-print" ...>`:一个不打印的div,包含了打印按钮,点击该按钮可以触发打印功能。

15. `<h1>`:页面标题,显示"甘肃省引大秦工程管理配水单"。

16. `<p>`:段落元素,显示日期信息。

17. `<div class="headStyle">`:头部样式的div容器,包含水单位、供水渠系等信息。

18. `<div class="table-box">`:表格容器,包含了配水表格。

19. `<div class="foot">`:页脚容器,包含了审核和签字信息。

20. `<script>`:JavaScript脚本部分,用于获取当前日期并更新页面上的日期显示。

21. `// 获取当前日期`:注释,解释下面代码的作用。

22. `var currentDate = new Date();`:创建一个Date对象,表示当前日期和时间。

23. `var year = currentDate.getFullYear();`、`var month = currentDate.getMonth() + 1;`、`var day = currentDate.getDate();`:分别获取当前日期的年、月、日。

24. `document.getElementById("currentDate").innerText = year + "年" + month + "月" + day + "日";`:将获取的年月日信息更新到页面上id为"currentDate"的span元素中,显示当前日期。

25. `</body>`:HTML文档的body结束标签。

26. `</html>`:HTML文档的结束标签。

具体效果

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/145232
推荐阅读
相关标签
  

闽ICP备14008679号