VUE+vue-print-nb,vue打印我踩过的坑

2023-11-14

这几天写了一个需求,要求打印条形码,先来张要打印出来的效果图吧,效果图大概长这样子(图是我随便找的,二维码扫出来是啥我也不知道,哈哈)
在这里插入图片描述
写这个需求的时候踩了太多的坑了,在此记录下辛酸史。

vue-print-nb基本用法

这个插件用法很简单,安装依赖后就可以直接使用(npm install vue-print-nb),点击打印就会唤起打印弹框。

 <div style="display:none;">
      <div id="printStyle" ref="printTest">
       <div v-for="(item,index) in printList" :key="index" style="display:inline-block;padding:20px;margin-bottom:4px">
          <table style="fontSize:20px">
            <tr><th colspan="2">天然气有限公司</th></tr>
            <tr><td colspan="2">资产名称:{{ item.name }}</td></tr>
            <tr><td colspan="2">资产型号:{{ item.model }}</td></tr>
            <tr>
              <td>资产编码:{{ item.assetsCode }}</td>
              <td rowspan="2" style="padding:0 10px">
                <div ref="codeItem" class="qrcode-pic" />
              </td>
            </tr>
            <tr><td>使用日期:{{ item.assetsTime }}</td></tr>
          </table>
        </div>
      </div>
      <button ref="printBtn" v-print="'#printStyle'">打印</button>
    </div>

第一个坑:打印总是会多出一个空白页

解决办法:不能给html设置高度!!!

html {
    // height: 100%;
    box-sizing: border-box;
}

第二个坑:img标签无法打印,识别不出

解决办法:将需要打印的内容转为图片打印出来

//需要打印的图片
<img id="printStyle" style="display:none" :src="meetingDetail.qrCode" alt="">

//触发打印的事件
<el-button id="printQrcode" v-print="'#printStyle'" style="display:none" type="primary">二维码打印</el-button>

import html2canvas from 'html2canvas'
import printJS from 'print-js'

// 打印二维码
printQrcode () {
  html2canvas(this.$refs.printStyle, {
    backgroundColor: null,
    useCORS: true,
    windowHeight: document.body.scrollHeight
  }).then((canvas) => {
    const url = canvas.toDataURL()
    printJS({
      printable: url,
      type: 'image',
      documentTitle: '打印图片'
    })
  })
},
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VUE+vue-print-nb,vue打印我踩过的坑 的相关文章

  • 如何使用 Angular JS 单击时将 html 模板附加到 div/指令?

    我有这种情况
  • 淘汰赛绑定,每个都可进行自定义

    我这里有一个情况 用于淘汰每个带有定制的绑定 这是我的代码 div div table tbody tr td td td td tr tbody table div div
  • ToggleClass 动画 jQuery?

    我的网站上有一个部分 当用户单击时我希望它展开 我正在使用 jQuerytoggleClass为了这 expandable function e e preventDefault this closest article toggleCla
  • Django - 提交具有同一字段多个输入的表单

    预警 我对 Django 以及一般的 Web 开发 非常陌生 我使用 Django 托管一个基于 Web 的 UI 该 UI 将从简短的调查中获取用户输入 通过我用 Python 开发的一些分析来提供输入 然后在 UI 中呈现这些分析的可视
  • Knockout.js 安全绑定

    我想使用带有淘汰赛的安全绑定 为此我使用敲除安全绑定 js https github com brianmhunt knockout secure binding 谁能解释一下为什么下面的代码不起作用 它会抛出一个错误 未捕获 淘汰 安全
  • 元素和 svg 形状之间的白线

    大家好 我正在使用由 shapedivider 生成的 svg 整形器 您可以看到 有一条白线 我不知道为什么它在那里以及如何删除它 请你帮助我好吗 有形状分隔符的代码 custom shape divider bottom 1640714
  • HTML 输入 - 名称与 ID [重复]

    这个问题在这里已经有答案了 使用 HTML 时
  • 如何向 CSS 形状添加偏移轮廓?

    我在创建带有斜角边缘的块时遇到了一些问题 此外我需要一个斜角的边框并稍微偏离主块 问题是这个块可以根据屏幕响应 不知道具体的方法 希望大家帮忙 这就是我现在所做的 box display flex padding 20px height 2
  • Vuejs 错误:客户端渲染的虚拟 DOM 树与服务器渲染的不匹配

    我在我的应用程序中使用 Nuxt js Vuejs 并且我在不同的地方不断遇到此错误 The client side rendered virtual DOM tree is not matching server rendered con
  • Angular JS 中的数组

    我是 Angular JS 新手 我正在将元素推送到数组中 然后想使用 ng repeat 在 html 中显示 scope groupedMedia Adding elements through a for loop scope gro
  • HTML5 仅拖放图像

    我想做的是 如果所有拖动的文件都是图像 则将其删除 但如果有其他文件扩展名 则不要删除它们 而仅删除图像 这是我的尝试 HTML div div JavaScript var dropzone document getElementById
  • 通过 jQuery 选择动态 HTML 元素

    我正在构建一个 ASP NET MVC 应用程序 并且正在使用jQuery Blueimp https github com blueimp jQuery File Upload动态添加到页面的 PartialView 上的插件 根据插件的
  • 使用 jQuery 更改父元素样式

    我有下一个 html 设置 div class one div class two a href class three Click a div div 我想更改具有类的元素的背景颜色 one当我点击元素时 three使用 jQuery 这
  • 为什么我的反应路由器链接将我带到页面中间?

    我的网站上有很多链接 但只有一个可以执行此操作 它没有将我带到导航栏的顶部 而是转到内容的中间 知道为什么会这样吗 这是一个页面 其中有一个 map经历一些JSON 这是渲染div页面下方的文本元素 如果重要的话 这是一些可能相关的代码 路
  • 使用 HTML5(数据列表)自动完成功能和“包含”方法,而不仅仅是“开头为”

    我找不到它 但我又不知道如何搜索它 我想用
  • 访问 nuxt 配置文件中的存储

    我想添加通过 Nuxt 静态生成的动态路由 我定义了一个客户端 服务器端存储asyncData方法 我想将这个存储值 一个数组 映射到我的nuxt config js文件使其成为 动态 静态 路线图nuxt generate命令 但如何访问
  • 如何使跨度标签不可删除?

    我正在尝试使 contenteditable div 内的跨度标记不可删除 div Editable span Read Only span div 只读范围确实是只读的 但我可以通过单击删除键来删除整个范围 有没有一种属性方法可以告诉sp
  • 将特定字形与网络字体一起使用

    使用网络字体 我想使用字体功能设置 CSS 中的选项以及跨度类HTML 中 以便使用字体集中的特定替代字形 我需要以正确的语法使用哪些值 GID Unicode 才能定位特定的目标glyph内glyph备择方案 这些功能使用 OpenTyp
  • 如何在画布上所有其他内容后面绘制图像? [复制]

    这个问题在这里已经有答案了 我有一块画布 我想用drawImage在画布上当前内容后面绘制图像 由于画布上已经有内容 我正在使用字面上的画布来创建包含图像的画布 因此我无法真正先绘制图像 所以我无法使用drawImage在我呈现其余内容之前
  • ng-include 和 ng-view 不同时加载

    下面是我的应用程序的结构 很简单 页眉和页脚是非常小的文件 而主页上的 ng view 要大得多 当我进入该页面时 我注意到了这一点 首先加载两个 ng include 然后 ng view 出现 页脚被推到底部 页脚闪烁大约 0 1 秒

随机推荐

  • Netty:ByteBuf写入数据、读出数据

    介绍 Netty的ByteBuf数据位置索引是从0开始的 类似于数组 getByte int index 从指定位置读出一字节 这个操作不会改变ByteBuf的readerIndex或者 writerIndex 的位置 这个操作也不受rea
  • Ubuntu16.04系统安装tensorflow(GPU)

    作者 冯拓 电脑配置如下 配置 HP Z820 CPU核心线程数和主频 intel xeon 至强 E 5 2620 2 0GHz 24 内存 64GB 硬盘 2TB 显卡 NIVDIA TITAN X 12GB 安装过程中使用的安装包 安
  • 用Java实现杨辉三角

    给定一个非负整数 numRows 生成 杨辉三角 的前 numRows 行 在 杨辉三角 中 每个数是它左上方和右上方的数的和 示例 1 输入 numRows 5 输出 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 示例 2
  • Go语言的大小写

    初学者经常犯Go大小写默认的错误 即在包外引用小写的常量 函数提示错误 对于刚接触Go语言的人会觉得莫明其妙 原因是 Go语言中 常量 函数的首字母大写表示对外公开的相当于Java的public 小写表示私有的相当于Java的private
  • Vue element 二级菜单绑定示例

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 一 element ui 中动态绑定二级菜单示例 1 视图绑定
  • 软考高项之风险管理-攻坚记忆

    软考高项之风险管理 攻坚记忆 一 项目风险管理概述 1 风险相关概念及性质 2 风险分类 二 风险管理的ITO 1 风险管理过程组 规划风险管理ITO 2 风险管理过程组 识别风险ITO 3 风险管理过程组 实施定性风险分析ITO 4 风险
  • Three.js 模型添加标签

    在很多的实际的项目中 你可能需要给一个Three js的模型添加标签 那么我们可以使用three js的精灵模型来表示 使用精灵模型表示一个模型对象的标签 那么精灵模型就要位于模型对象的附近 可以获得要标注模型的世界坐标 然后来设置精灵标签
  • java cron表达式 每天凌晨两点_定时任务的cron表达式

    前言 对于开发人员来说 在做项目的过程中或多或少都会用到定时任务 Java开发一般会用Spring Quartz xxl job Elastic job来做定时任务调度框架 不论使用哪种框架 定时任务表达式都是必不可少的 平时配置cron表
  • linux的TCP连接数量最大不能超过65535个吗,那服务器是如何应对百万千万的并发的?

    首先 问题中描述的65535个连接指的是客户端连接数的限制 在tcp应用中 server事先在某个固定端口监听 client主动发起连接 经过三路握手后建立tcp连接 那么对单机 其最大并发tcp连接数是多少呢 如何标识一个TCP连接 在确
  • 动态规划(上)

    题目一 109 数字三角形 LintCode 分治 利用递归可以很快的写出程序 class Solution public int traverse vector
  • JavaScript读取json文件

  • push和pushl的区别

    AT T汇编中 命令中可以指定操作范围 如pushb是将一个byte压栈 而pushw就是将一个word压栈 同样pushl就是压栈long 也就是双字 esp指的是esp寄存器 已知是双字 而0xfffffff8 p 指的是一个内存空间
  • JVM垃圾回收机制GC理解

    目录 JVM垃圾回收 分代收集 如何识别垃圾 引用计数法 可达性分析法 引用关系四种类型 强 软 弱 虚 强引用 软引用 SoftReference 弱引用 WeakReference WeakHashMap 软引用与虚引用的使用场景 虚引
  • [Codeforces 1286B] Numbers on Tree

    Evlampiy was gifted a rooted tree The vertices of the tree are numbered from 1 to n Each of its vertices also has an int
  • 用Python3 + bs4 + request + mysql 抓取并存储新发地菜价数据

    为了让大家去菜市场砍价的时候 心里更有底 我写了一个小程序 抓取新发地官网公布的农副产品价格 并存入数据库 仅供研究 简单说一下思路吧 从新发地官网找到数据展示的规律 发现不同的类别和页数 是通过两个接口参数控制的 因此将URL模板设计成动
  • C语言复习:关于链表的函数参数*L,&L.

    关于链表的函数参数 1 在链表中有时参数指针是 L 2 有时是 指针是 L 1 在链表中有时参数指针是 L ListInsert LinkNode L int i ElemType e InitList LinkNode L 2 有时是 指
  • uniapp 一个项目只能使用一个APPID

    一个项目只能使用一个APPID 这时只需要登录开发者中心就会自动更新APPID了
  • 云原生之使用Docker部署Linux命令大全搜索工具

    云原生之使用Docker部署Linux命令大全搜索工具 一 Linux Command介绍 二 检查本地部署环境 1 检查docker版本 2 检查docker状态 三 下载linux command镜像 四 部署linux command
  • kylin: NoClassDefFoundError: org/apache/hadoop/hive/conf/HiveConf

    1 背景 kylin load hive data 报错 后台日志 2019 05 08 11 40 34 046 ERROR http bio 7070 exec 3 controller TableController 197 org
  • VUE+vue-print-nb,vue打印我踩过的坑

    这几天写了一个需求 要求打印条形码 先来张要打印出来的效果图吧 效果图大概长这样子 图是我随便找的 二维码扫出来是啥我也不知道 哈哈 写这个需求的时候踩了太多的坑了 在此记录下辛酸史 vue print nb基本用法 这个插件用法很简单 安