vue循环打印表格和二维码
准备工作
npm install qrcodejs2 --save
使用页面引入 import QRCode from "qrcodejs2";
html代码
<div>
<div v-for="(v, index) in printList " :id="'printDiv' + index" :key="v.yId"
style="page-break-after:always">
<table border="1" style=" border-collapse: collapse;">
<tr>
<td colspan="4">abc:{{ v.xxx }}</td>
</tr>
<tr>
<td>abc</td>
<td>{{ v.xxx }}</td>
<td>abc</td>
<td>{{ v.xxx }}</td>
</tr>
<tr>
<td>abc</td>
<td>{{ v.xxx }}</td>
<td>abc</td>
<td>{{ v.xxx }}</td>
</tr>
<tr>
<td rowspan="4" colspan="3">abc:{{ v.yRemark }}</td>
<td rowspan="4" colspan="1">
//二维码组件
<QRCode :index="index" :text="QRCodeData(v)" />
</td>
</tr>
<tr></tr>
<tr></tr>
<tr></tr>
</table>
</div>
</div>
js代码
// 打印
handlePrint() {
if (this.printList.length > 0) {
var newWin = window.open(""); //新打开一个空窗口
for (var i = 0; i < this.printList.length; i++) {
var imageToPrint = document.getElementById("printDiv" + i); //获取需要打印的内容
newWin.document.write(imageToPrint.outerHTML); //将需要打印的内容添加进新的窗口
}
this.printList = []
// 打印样式的css代码要写在这里要不然打印不生效
const styleSheet = `<style>tr {border: 1px solid black; padding: 5px; font-weight: bold; height: 2vh}td {border: 1px solid black;padding: 5px;font-weight: bold;width: 14vw;}</style>`;
newWin.document.head.innerHTML = styleSheet; //给打印的内容加上样式
newWin.document.close(); //在IE浏览器中使用必须添加这一句
newWin.focus(); //在IE浏览器中使用必须添加这一句
setTimeout(function () {
newWin.print(); //打印
newWin.close(); //关闭窗口
}, 100);
} else {
this.$Message.info("您选择的数据暂无可打印的值");
}
},
二维码组件
<template>
<div>
//id和ref的值一定要一致
<div style="display: flex;justify-content: space-between;">
<div> </div>
<div :id="`qrcode${this.index}`" :ref="`qrcode${this.index}`"></div>
<div> </div>
</div>
</div>
</template>
<script>
import QRCode from "qrcodejs2";
export default {
name: 'WebQRCode',
props: ['index', 'text'],
data() {
return {
};
},
mounted() {
new QRCode(`qrcode${this.index}`, {
width: 60, //宽度
height: 60, // 高度
text: this.text, // 二维码内容
render: "table", // 设置渲染方式(有两种方式 table和canvas,默认是canvas)
});
},
methods: {
},
};
</script>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理