用纯HTML写一个凭证并打印

news/发布时间2024/5/14 15:13:34

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

<!DOCTYPE html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title>标题</title><style type="text/css" media="all">* {margin: 0;padding: 0;font-size: 12px}table {width: 90%;border: 1px solid #000;border-collapse: collapse;margin: 5px auto}th,td {border: 1px solid #000;border-collapse: collapse;padding: 8px 5px}h1 {font-size: 24px}@media print {.no-print {display: none;}}.headStyle{width: 90%;display: flex;justify-content: space-between;border-collapse: collapse;margin: 5px auto;}.headTitleLift{display: flex;}.title {display: flex;flex-direction: column;align-items: end;}.title div {margin-bottom: 5px; /* 为了增加行间距 */}.content div {margin-bottom: 5px; /* 为了增加行间距 */}.foot{display: flex;flex-direction: row;align-items: flex-start;width: 90%;justify-content: space-between;border-collapse: collapse;margin: 5px auto;}.foot div {margin-right: 50px; /* 设置项目间距为10像素 */}</style>
</head><body>
<div class="no-print" style="text-align:center;margin:5px"><button onClick="window.print()"> 打 印</button>
</div><h1 style="text-align: center;">某某的单子要打印</h1>
<p style="text-align: center;">日期: <span id="currentDate"></span>
</p><div class="headStyle"><div class="headTitleLift"><div class="title"><div >水单位:</div><div >对应水票编号:</div></div><div class="content"><div >XXXX</div><div >203023032</div></div></div><div class="headTitleLift"><div class="title"><div >供水渠系:</div><div >灌季:</div></div><div class="content"><div >XX有限公司</div><div >冬季 </div></div></div></div><div class="table-box"><table><thead><tr><th> 斗口</th><th> 申请面积(亩)</th><th> 灌溉定额(方/亩)</th><th> 申请水量(方)</th><th> 开始时间</th><th> 结束时间</th><th> 计划用时(时分秒)</th><th> 斗口流量(方/秒)</th><th> 备注</th></tr></thead><tbody><tr><td> 1</td><td> 数据1</td><td> 数据2</td><td> 数据3</td><td> 数据4</td><td> 数据5</td><td> 数据6</td><td> 数据7</td><td> 数据8</td></tr><tr><td> 2</td><td> 数据1</td><td> 数据2</td><td> 数据3</td><td> 数据4</td><td> 数据5</td><td> 数据6</td><td> 数据7</td><td> 数据8</td></tr></tbody><tfoot><tr><th>合计:</th><th></th><th></th><th></th><th></th><th></th><th> 300.00</th><th> 300.00</th><th> 300.00</th></tr></tfoot></table>
</div><div class="foot"><div>水管所审核:单打独斗</div><div>配水员:李刚</div><div>支(渠)长:可</div><div>用水单位(签字):单打独斗</div></div><script>// 获取当前日期var currentDate = new Date();var year = currentDate.getFullYear();var month = currentDate.getMonth() + 1;var day = currentDate.getDate();// 更新页面上的日期显示document.getElementById("currentDate").innerText = year + "年" + month + "月" + day + "日";
</script></body></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文档的结束标签。

具体效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.bcls.cn/mXEo/2800.shtml

如若内容造成侵权/违法违规/事实不符,请联系编程老四网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

代码随想录算法刷题训练营day22

代码随想录算法刷题训练营day22&#xff1a;LeetCode(236)二叉树的最近公共祖先、LeetCode(235) 二叉搜索树的最近公共祖先、LeetCode(701)二叉搜索树中的插入操作、LeetCode(450)删除二叉搜索树中的节点 LeetCode(236)二叉树的最近公共祖先 题目 代码 /*** Definition for…

Vue的个人笔记

Vue学习小tips ctrl s ----> 运行 alt b <scrip> 链接 <script src"https://cdn.jsdelivr.net/npm/vue2.7.16/dist/vue.js"></script> 插值表达式 指令

C#_扩展方法

简述&#xff1a; 扩展方法所属类必需是静态类&#xff08;类名依据规范通常为XXXExtension&#xff0c;XXX为被扩展类&#xff09;扩展方法必需是公有的静态方法扩展方法的首个参数由this修饰&#xff0c;参数类型为被扩展类型 示例&#xff1a; static class DoubleExtens…

Springboot打包、部署

一、导入maven打包插件 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins> </build> 二、执行打包操作&#xff08;…

LiteOS-M代码分析-系统初始化los_init.c

目录 一、LiteOS-M 初始化内核二、LOS_KernelInit代码分析三、LOS_Start代码解析坚持就有收获 一、LiteOS-M 初始化内核 在LiteOS-M应用程序中&#xff0c;系统初始化如下&#xff1a; /*** brief This is the ohos entry, and you could call this in your main funciton af…

【教3妹学编程-算法题】匹配模式数组的子数组数目 I

3妹&#xff1a;2哥2哥&#xff0c;你有没有看到上海女老师出轨男学生的瓜啊。 2哥 : 看到 了&#xff0c;真的是太毁三观了&#xff01; 3妹&#xff1a;是啊&#xff0c; 老师本是教书育人的职业&#xff0c;明确规定不能和学生谈恋爱啊&#xff0c;更何况是出轨。 2哥 : 是啊…

【Pytorch深度学习开发实践学习】B站刘二大人课程笔记整理lecture05 构建线性模型

lecture05 构建线性模型 课程网址 Pytorch深度学习实践 部分课件内容 import torchx_data torch.tensor([[1.0],[2.0],[3.0]]) y_data torch.tensor([[2.0],[4.0],[6.0]])class LinearModel(torch.nn.Module):def __init__(self):super(LinearModel, self).__init__()self.lin…

LeetCode每日刷题:101. 对称二叉树

题目&#xff1a; 解题思路&#xff1a;可以新写一个函数&#xff0c;从root开始&#xff0c;root的left的头结点将记为lefttree&#xff08;左子树&#xff09;,root的lright的头结点将记为righttree&#xff08;右子树&#xff09;&#xff0c; 然后递归左子树的root.left与右…

智能合约,数据资产变现金的一把金钥匙?

大数据产业创新服务媒体 ——聚焦数据 改变商业 在数字时代的黎明&#xff0c;数据不仅是知识的载体&#xff0c;更成为了经济增长的新引擎。在这个由数据驱动的世界里&#xff0c;数据资产如同新发现的矿藏&#xff0c;蕴藏着无限的潜力和价值。 然而&#xff0c;随着这些数字…

【机器学习笔记】 15 机器学习项目流程

机器学习的一般步骤 数据清洗 数据清洗是指发现并纠正数据文件中可识别的错误的最后一道程序&#xff0c;包括检查数据一致性&#xff0c;处理无效值和缺失值等。与问卷审核不同&#xff0c;录入后的数据清理一般是由计算机而不是人工完成。 探索性数据分析(EDA 探索性数据…

基于Java+小程序点餐系统设计与实现(源码+部署文档)

博主介绍&#xff1a; ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精彩专栏 推荐订阅 &#x1f447;&#x1f3fb; 不然下次找不到 Java项目精品实…

AIGC 实战:如何使用 Docker 在 Ollama 上离线运行大模型(LLM)

Ollama简介 Ollama 是一个开源平台&#xff0c;用于管理和运行各种大型语言模型 (LLM)&#xff0c;例如 Llama 2、Mistral 和 Tinyllama。它提供命令行界面 (CLI) 用于安装、模型管理和交互。您可以使用 Ollama 根据您的需求下载、加载和运行不同的 LLM 模型。 Docker简介 D…

搭建SQL 注入平台

sqli-labs是一款学习SQL 注入的开源平台&#xff0c;共有75种不同类型的注入&#xff0c;在本书 的同步网站下载完压缩包后并解压&#xff0c;复制源码然后将其粘贴到网站的目录中&#xff0c;进入 MySQL 管理中的phpMyAdmin, 打开http://127.0.0.1/phpMyAdmin/, 在数据库…

使用RegNet替换YOLOX中原始的Backbone

使用mmdetection 中的RegNet bcakbones替换YOLOX中原始的Backbone 将mmdet/models/backbones/regnet.py中相关的代码复制到YOLOX中&#xff0c;并进行适配 注意通道数要适配 in_channels [64, 160, 384] &#xff0c;可以通过调试后&#xff0c;先运行到后后端输出结果出&a…

运维SRE-08 网络基础与进阶

今日内容 - **定时备份案例进阶.** - **定时巡检(检查系统基础指标),写入到文件中.** - 网络(抽象) 掌握与吸收时间: 直到课程结束.(第2阶段结束) - 网络基础: 网络概述,网络结构,网络设备. - 网络核心: OSI7层模型 ※※※※※※TCP/IP 3次握手 ※※※※※※TCP/IP 4…

前端架构: 实现脚手架终端UI样式之ANSI escape code, Chalk, Ora介绍

在脚手架当中实现命令行的UI显示 1 &#xff09;概述 在命令行中&#xff0c;如果想实现除传统的常规文本以外的内容比如想对字体进行加粗斜体下划线&#xff0c;包括对它改变颜色改变前景色改变后景色等等需要借助一个叫做 ANSI escape code 这样的一个概念它其实是一个标准&…

Linux安装docker(CentOS)

1.下载工具 yum install -y yum-utils2.设置镜像的仓库 yum-config-manager \--add-repo \https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo3.更新yum软件包索引 yum install docker-ce docker-ce-cli containerd.io4.安装docker相关配置 yum install do…

【web安全】渗透测试实战思路

步骤一&#xff1a;选目标 1. 不建议太小的公司&#xff08;可能都是请别人来开发的&#xff0c;用现成成熟的框架&#xff09; 2. 不建议一线大厂&#xff1a;腾讯&#xff0c;字节&#xff0c;阿里等&#xff0c;你懂的 3. 不建议政府部门&#xff0c;安全设备多&#xff…

【C语言】注释

&#x1f388;个人主页&#xff1a;豌豆射手^ &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;C语言 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进步&…
推荐文章