Demo: 前端生成条形码并打印

前端生成条形码并打印

在这里插入图片描述

安装依赖:
npm i print-js // 打印
npm i jsbarcode // 生成条形码

<template>
    <div id="printContent" style="display: none;">
        <div id="elTable">
            <div class="name">名称:{{ printInfo.name }}</div>
            <div class="name">品牌:{{ printInfo.brand }}</div>
            <div class="name">型号:{{ printInfo.model }}</div>
            <!-- 显示条形码 -->
            <canvas class="barcode" ref="barcodeRef"></canvas>
        </div>
    </div>
    <el-button type="success" @click="pdfPrint">打印pdf文件</el-button>
</template>
  
<script setup lang="ts">
import { ref, onMounted } from 'vue'
import printJS from "print-js";
import JsBarcode from 'jsbarcode'; // 导入JsBarcode库

const barcodeRef = ref(null) // 条形码实例
// 打印信息
const printInfo = ref({
    name: '大疆无人机',
    brand: '南方',
    model: 'model'
})

// 生成条形码
const generateBarcode = () => {
    const canvas = barcodeRef.value; // 获取到canvas元素
    // 传递参数生成条形码
    JsBarcode(canvas, "No.202401250212118948", {
        format: "CODE128",//条形码的格式
        width: 2, //线宽
        height: 48, //条码高度
        lineColor: "#000", //线条颜色
        displayValue: true, //是否显示文字
        margin: 2, //设置条形码周围的空白区域
    })
}

// 打印
const pdfPrint = () => {
    printJS({
        printable: 'elTable', // HTML内容
        type: "html", // 打印类型
        header: "", // '表单名称',
        targetStyles: ["*"],
        style: "@page {margin:1mm 1mm};", // 可选-打印时去掉眉页眉尾
        ignoreElements: ["no-print"], // 接受打印父 html 元素时应忽略的 html id 数组。
        properties: null,
    })
}

onMounted(() => {
    generateBarcode()
})
</script>
  
<style lang="scss">
#elTable {
    width: 200px;

    .barcode {
        width: 192px;
    }
}
</style>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解决import Jetson.GPIO报错“权限错误”

在导入Jetson.GPIO模块时出现权限错误&#xff0c;可能是由于缺少适当的权限或设备权限问题。以下是一些建议&#xff1a; 使用sudo&#xff1a; 尝试使用sudo来运行你的Python脚本或解释器&#xff0c;以获取足够的权限&#xff1a; sudo python your_script.py请注意&#xf…

春节运维手册:自动巡检、应急预案和管家值守哪个更香?

春节假期就要来啦&#xff0c;在气氛组的不懈努力下&#xff0c;想要放假过年的心达到了顶峰&#xff0c;但总有工作离不开我&#xff0c;回家后还被Q&#xff0c;总不能视而不见吧&#xff1f;想要get不被工作打扰的假期&#xff0c;作为资深运维工程师&#xff0c;怎么可能没…

Easy-Es操作Elasticsearch

文章目录 1 Easy-Es1.1 简介1.2 MySQL与Easy-Es语法对比1.3 集成及配置1.3.1 pom.xml1.3.2 配置 1.4 使用1.4.1 注解的使用1.4.2 EsMapper接口1.4.3 简单搜索 1.5 使用案例1.5.1 综合商品搜索1.5.2 相关商品推荐1.5.3 聚合搜索商品相关信息 1 Easy-Es 使用过Spring Data操作ES…

图灵之旅--ArrayList顺序表LinkedList链表栈Stack队列Queue

目录 线性表顺序表ArrayList简介ArrayList使用ArrayList的构造ArrayList常见操作ArrayList的遍历ArrayList的扩容机制利用ArrayList洗牌ArrayList的优缺点 链表链表的实现双向链表的实现 LinkedListLinkedList引入LinkedList的使用LinkedList的构造LinkedList的常用方法介绍Lin…

优质硬盘检测工具SMART Utility,保障您的Mac数据安全

在日常使用Mac电脑的过程中&#xff0c;我们经常会存储大量的重要数据&#xff0c;如照片、文档、视频等。然而&#xff0c;硬盘故障却是一件令人头疼的事情&#xff0c;可能会导致数据丢失、系统崩溃等严重后果。为了保障您的数据安全&#xff0c;我们推荐一款专业的硬盘检测工…

260:vue+openlayers 通过webgl方式加载矢量图层

第260个 点击查看专栏目录 本示例介绍如何在vue+openlayers中通过webgl方式加载矢量图层。在做这个示例的时候,采用vite的方式而非webpack的方式。这里的基础设置需要改变一下。 ol的版本7.5.2或者更高。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果 文…

matlab appdesigner系列-仪器仪表4-开关、开关(切换)、开关(翘板)

开关、开关&#xff08;切换&#xff09;、开关&#xff08;翘板&#xff09;&#xff0c;可进行On和Off两种状态切换 示例&#xff1a;开关开启时&#xff0c;可通过滑块调整表盘数值&#xff0c;并有提示框提示 开关关闭时&#xff0c;滑块、表盘数值清零&#xff0c;并有提…

30s学会JAVA几个关键词

1.final&#xff08;最终&#xff09; 修饰类-》此类无法被继承 修饰方法-》该方法不可被重写 修饰属性和局部变量-》看作常量&#xff0c;赋值位置&#xff1a;显式初始化&#xff0c;代码块初始化&#xff0c;构造器初始化 2.super(继承子类可用) 1.在子类方法或构造器中…

CentOS网络配置进阶:深入研究network服务和NetworkManager

前言 如果你正在使用CentOS系统,并且想要深入了解网络管理和配置,那么本文肯定适合你!在这篇文章中,作者深入探讨了CentOS中的两种网络管理方式:network服务和NetworkManager。通过详实的讲解和实用的示例,你将会学习到如何使用这两种工具来管理网络接口、配置IP地址、网…

故障诊断 | 一文解决,LSTM长短期记忆神经网络故障诊断(Matlab)

文章目录 效果一览文章概述专栏介绍模型描述源码设计参考资料效果一览 文章概述 故障诊断模型 | Maltab实现LSTM长短期记忆神经网络故障诊断 专栏介绍 订阅【故障诊断】专栏,不定期更新机器学习和深度学习在故障诊断中的应用;订阅

Enzo Life Sciences:NUCLEAR-ID®系列染料

Enzo Life Sciences公司的NUCLEAR-ID Blue DNA stain (GFP-CERTIFIED)和NUCLEAR-ID Red DNA Stain是细胞渗透性染料&#xff0c;适用于活细胞的细胞核染色。这系列染料为通过流式细胞术研究细胞周期进程的诱导和抑制提供了一种简便方法。该试剂在活细胞研究中的潜在应用包括确…

UI动效如何通过ps放到贴图模板里导出gif效果图

经常看到设计网站上有将UI动效在好看的模板里进行展示的&#xff0c;效果非常棒&#xff01;很多设计师应该都可以做出好看的UI动效动画效果&#xff0c;但不知道怎么把动效放到手机模板里进行更好的展示。 这篇教程就是帮你把制作好的动效动画通过ps放到好看的模板里&#xf…

负载均衡下Webshell连接思路及难点

君衍. 一、应用场景二、环境搭建三、思路以及难点1、查看内部结构2、查看webshell3、使用蚁剑进行连接4、难点1 shell文件上传问题5、难点2 命令执行时飘逸6、难点3 大工具上传失败7、难点4 脚本失效 四、解决方式1、关闭对方节点服务器2、基于IP地址判断是否执行3、脚本实现流…

【重磅发布】已开放!模型师入驻、转格式再升级、3D展示框架全新玩法…

1月23日&#xff0c;老子云正式发布全新版本。此次新版本包含多板块功能上线和升级&#xff0c;为用户带来了含模型师入驻、三维格式在线转换升级、模型免费增值权益开放、全新3D展示框架等一系列精彩内容&#xff01; 1月23日&#xff0c;老子云正式发布全新版本。此次新版本…

【英语趣味游戏】填字谜(Crossword)第2天

谜题出处 柯林斯字谜大全&#xff08;6&#xff09;&#xff0c;Collins——Big Book of Crosswords (Book 6) Puzzle Number: 115 本期单词 横向 1、Fetch (8) 拿&#xff0c;取&#xff0c;8个字母 答案&#xff1a;Retrieve&#xff0c;取到&#xff0c;拿回 5、Common s…

【Java程序设计】【C00171】基于SSM的智慧篮球馆预约管理系统(论文+PPT)

基于SSM的智慧篮球馆预约管理系统&#xff08;论文PPT&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于ssm的智慧篮球馆预约管理系统 本系统分为前台、管理员以及学生3个功能模块。 前台&#xff1a;当游客打开系统的网址后&#xff0c;首先看到…

Python网络爬虫实战——实验3:Python爬虫之文字验证码实战

【实验内容】 本实验主要介绍在网络爬虫数据采集的过程中出现的常见的验证码反爬手段以及解决措施。 【实验目的】 1、理解验证码反爬的背景&#xff1b; 2、掌握常见文字验证码反爬手段&#xff1b; 3、研究解决文字验证码反爬的方法&#xff1b; 【实验步骤】 步骤1 调研…

LeetCode —— 43. 字符串相乘

&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️Take your time ! &#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️…

延伸与应用(五)企业家、网络经济,犯罪经济学、医疗保障经济学、资源经济

65&#xff0e;企业家与企业家精神 企 业 家 精 神 &#xff08; entrepreneurship &#xff09; 一 词 &#xff0c; 源 于 法 文 的 企 业 家&#xff08;entrepreneur&#xff09;这个单词。之后&#xff0c;经济学家不断地发现&#xff0c;其实企业家所代表的打拼与创新的精…

CCF CSP 202312-1仓库规划

题目描述 样例 输入 4 2 0 0 -1 -1 1 2 0 -1 输出 3 1 0 3 基本思路 暴力求解&#xff0c;使用二维数组存储所有仓库信息&#xff1b;针对每个仓库&#xff0c;遍历其他所有的仓库查找满足条件的上级仓库&#xff0c;有就输出查找到的第一个仓库编码&#xff0c;没有就输出…