编写代码,要求如下:纯css+html形式的发票模板,将最后呈现的电子发票样式,提供一键打印和PDF下载。 并且在提供下载时,自动以生成的发票编号做为PDF的文件名保存。 代码要加上注释,方便理解和记忆。
时间: 2024-10-19 12:10:51 浏览: 64
在CSS和HTML中创建一个简单的电子发票模板并实现一键打印和PDF下载功能,可以使用以下步骤。我们将使用HTML构建基础结构,CSS添加样式,并借助JavaScript处理一些交互。请注意,这里仅提供基础示例,实际应用可能需要更复杂的功能,如服务器端验证、错误处理等。
```html
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>电子发票模板</title>
<style>
/* CSS样式 */
.invoice {
width: 800px;
border: 1px solid #ccc;
margin: 20px auto;
padding: 20px;
font-family: Arial, sans-serif;
}
.header {
background-color: #f5f5f5;
text-align: center;
}
... (继续添加发票抬头、内容、日期、金额等元素的样式)
/* 样式省略,具体请根据实际需求编写 */
</style>
<script>
// JavaScript部分
function downloadAsPDF() {
// 获取发票编号
var invoiceNum = document.getElementById('invoice-num').textContent; // 假设发票编号在id为'invoice-num'的元素中
// 创建一个新的隐藏iframe
var iframe = document.createElement('iframe');
iframe.style.display = 'none';
// 将PDF内容设置为当前页面
iframe.srcdoc = '<!doctype html><html><body>' + window.document.documentElement.outerHTML + '</body></html>';
// 设置PDF名称为发票编号
iframe.name = invoiceNum.replace(/[^a-zA-Z0-9]/g, '_'); // 这里假设只允许字母和数字作为文件名字符
// 通过contentDocument获取iframe的内容,然后下载
var doc = iframe.contentWindow.document;
var link = document.createElement('a');
link.href = doc.URL;
link.download = invoiceNum + '.pdf'; // 文件名
link.click();
}
</script>
</head>
<body>
<!-- HTML结构 -->
<div class="invoice">
<div class="header">发票抬头</div>
<div id="invoice-num">发票编号: 123456</div>
<!-- 其他发票内容... -->
<button onclick="downloadAsPDF()">一键打印及下载PDF</button>
</div>
</body>
</html>
```
阅读全文