Vue使用printjs组件打印页面 新需求: 需要将页面的局部信息打印出来,只在前端实现,不要占用后端的资源。 经过一通百度,决定使用 print-js和html2canvas组件。 main.js引入组件并注册为全局组件 笔者这里是使用Vue2.x版本,所以如果是Vue3.x,请根据新写法在main.js中引用。 import Vue from "vue"; import printjs from 'print-js' import 'print-js/dist/print.css'; import html2canvas from 'html2canvas'; Vue.prototype. $html2canvas = html2canvas; 3、实践打印工作 前置工作准备就绪,下面开始代码实操
1 查看图片打印文档 可以得出几个参数 指令开始的头为 1B 2A m 的值是分辨率,我们使用 33 ,也就是 22DPI的密度来打印 nL nH为图片的宽度 nL用1字节来存放低位的数据 nH用1字节来存放高位的数据 当m=33时 k=(nL+nHx256)x3 举例说明,刚刚100像素宽的图片 k=(100+0x256)x3=300 也就是说图片数组的大小为300个 2 数组的里面放什么数据? 可到了这里,这个数组的大小是知道了,里面放什么可不知道.不着急,我们继续往下看 因为我们选的是m=33,因为打印头是坚向排列的,一次是24个点. 数据d是一个字节,只有8位. 24个点,就是 d1 d2 d3来表示打印出一竖 也就是说 d1 d2 d3 第一竖 d4 d5 d6 第二竖 .... d(k-2) d(k-1) dk 最后一竖 d=8 位都是1=0XFF 代表8个像素都是黑点 d=8位都是0=0X00 代表8个像素都是白点 如果我要打印100排黑点 d1-d300 通通都是0XFF 3 最后放上程序代码 *--打印出一个100x24像素的黑条
(一)首先安装插件 npm install vue-print-nb --save (二)在main.js 中引入并注册 import Print from 'vue-print-nb' Vue.use (Print) (三)使用方法
问题描述 Vue项目利用连接针式打印机打印相关单据,打印出来的文字不清晰,字体颜色模糊。 解决思路 1、看是否样式问题 在查看Print.js 文档后发现,TA可以自己设置样式。 honorColor: true, // 是否打印彩色文本 targetStyles: ['*'] // 允许打印所有样式属性 }) 重新设置后在打印,发现问题依然存在。 然后在打印预览的时候发现普通的打印是可以选择文字什么的。而我们这个选不中才发现之前打印的逻辑是先生成base64的图片,打印的是图片。那会不会是图片模糊导致的呢? 2、将打印改成了DOM元素。 设置 printable 为需要打印模板的id,打印的时候不是图片url地址 3、重新打印后发现不是那么模糊了。 2、字体的颜色直接设置为黑色 3、打印的时候因为涉及到dpi 纸张大小等。需要注意!
1、安装vue-print-nb插件 npm install vue-print-nb –save 2、在main.js文件中引入插件 import Print from ‘vue-print-nb ’ Vue.use(Print) 3、编写程序
vue-pdf实现pdf预览、分页、下载、打印 vue-pdf-app(功能完整内嵌组件): https://www.npmjs.com/package/vue-pdf-app vue-pdf使用(参考地址 ="printing" @click.stop="print"> 打印 from 'html2canvas' import JsPDF from 'jspdf' export default{ install (Vue, options) { Vue.prototype.getPdf 在vue-pdf组件上绑定ref属性,再到方法中使用$refs获取DOM文本,调用原型方法print() // 打印 print() { console.log(this. $refs.pdf) // 这儿的console.log 仅用于测试打印出多个结果 this.$refs.pdf.print() },
2.打开cmd,cd到lesson2文件夹下,执行命令:npm init 进行npm初始化。 2.cmd到项目目录下,然后执行 npm install 这样就会将vue项目的依赖包全都下载安装下来 "devDependencies": { "autoprefixer": "^6.4.0" 3.vue第一个案例 1.下载vue.js开发者版本,下载页面的链接:https://cn.vuejs.org/v2/guide/installation.html 2.新建lesson3目录,在目录下新建 css目录、js目录、images目录、index.html文件,将vue.js放到js目录下 3.在index.html中使用vue.js <! "></script> <script> //1.创建vue实例化对象 //参数 var app= new Vue({
参考文章:前端实现 生成条形码并调用打印机打印 开发技术栈vue3+vite+setup 实现功能,批量选择数据–>生成条形码—>调用打印机–>打印输出 一、生成条形码: 1.安装所需要插件 npm i jsbarcode 2. 1.安装所需要插件 npm i vue-print-nb 2. (vue) { console.log('关闭了打印工具') } }) 具体相关条形码配置printObj,请参考vue-print-nb - npm 在打印预览的时候发现,条形码并不是一码一页 vue) { vue.printLoading = false console.log('执行了打印') }, closeCallback(vue) { console.log
否则会编译错误,可能是版本不同的原因 数组语法用得很少,所以就简单带过一下: 计算属性 当我们想对某一些数据进行处理以后再进行展示 比如: 但是都略显复杂,或者不够简洁明了,因此我们可以使用vue 调用的函数加上括号且传入参数: 正常执行函数 调用函数时加上括号但是未传参数: 结果为undefined 调用函数时省略括号: vue会将浏览器产生的event事件作为参数传到方法 这个应用场景就是有时候我们需要得到事件的一些参数 我们只需要在event前面加上一个"$"符号即可 v-on的修饰符 在这个例子中,如果我们点击了btn按钮,那么会打印出哪些内容呢? 按照我们以前学习过的知识,我们可知事件会冒泡,所以当我们点击了按钮时,会先打印出buttonClick,然后再打印出divClick 我们过去是用stopPropagation()来阻止事件冒泡,但是 vue给我们提供了更加简便的方法: 事件判断 直接打开网页的效果: 在控制台修改isShow
VUE实例2 <! DOCTYPE html> <html> <head> <title>Vue Demo</title> <script src="https://vuejs.org/js/<em>vue</em>.min.js -- 数据绑定从<em>vue</em>实例传送数据到DOM, 而v-model语法糖实现了<em>vue</em>数据反向传输,DOM(input标签)——><em>VUE</em> --> <input type="number" 对象 var myVue = new Vue({ //el是Vue的保留字,用来指定实例化的DOM的ID号 el:'#firstVue', //#是标签选择器,选择ID 实例里的局部变量 this.total += this.step if(this.total%2==0){ this.show=true }else
1.API 风格:选项式 vs 组合式总结 选项方和组合式的区别对比维度Vue2 选项式 API Vue3 组合式 API(setup 函数 / setup 语法糖) -- Vue 3 - 标准 setup --><template>
双倍值: {{ doubleCount }}</p 应用初始化方式不同Vue2全局构造函数import Vue from 'vue'import App from '. -- Vue 2 --><template>
"gender" value="female" v-model="v2">
event//template@click="fun1" //methodsfun1(event){}需要传参数的,需要把event参数带过去,使用$event//template@click="fun2( 2,$event)" //methodsfun2(val,event){}修饰符事件修饰符stop: 阻止事件冒泡prevent: 阻止默认事件,如超链接标签的重定向capture: 网页是默认按照冒泡方式去触发函数的 destroyed:Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。 $nextTick(()=>{})当多次修改data数据时,Vue会做一个data整合进行一次渲染(也就只会调用$nextTick一次)slot 插槽默认插槽//父组件<Child>
Vue粒子特效使用教程(vue-particles插件) 具体实现步骤 1.安装插件 npm install vue-particles -S 2.在main.js中注册 import Vue from ‘vue’ import VueParticles from ‘vue-particles’ Vue.use(VueParticles) 3.使用 template中 <vue-particles hoverMode="grab" :clickEffect="true" clickMode="push" class="lizi" > </vue-particles 可用的click模式有: “push”, “remove”, “repulse”, “bubble” 注意 1.vue-particles双标签中不能包含其他内容 2.vue-particles作为背景可能会和其他元素发送堆叠问题
svelte svelte-ts 更详细的介绍请看 Vite官网(中文版) Vite GitHub地址 1、初始化 Vue2 项目 在写本文时,Vite 默认没提供 Vue2 项目创建的选项。 (y) 之后只需输入项目名称即可,我这里新建的项目名为:vite-vue2。 Project name: vite-vue2 完成以上步骤后,再选择以下要新建的是什么项目即可。 项目目录如下所示 1.2、安装 vite 对 vue2 支持的插件 要在 vite 里运行 vue2 项目,需要安装一个 vite 的插件:vite-plugin-vue2 npm install vite-plugin-vue2 1.3、安装 vue 依赖 使用以下命令安装 vue2。 vue-router 是支持 Vue2 项目的。
Math.round(11.5)==12 Math.round(-11.5)==-11 round方法返回与参数最接近的长整数,参数加1/2后求其floor. 27、String s = new String ]){ ThreadTest1 tt=new ThreadTest1(); Inc inc=tt.new Inc(); Dec dec=tt.new Dec(); for(int i=0;i<2;
引言在Vue.js开发中,打印功能是许多Web应用不可或缺的一部分。无论是打印报表、订单、发票还是其他文档,都需要在Vue组件中实现可靠的打印功能。 本文将详细介绍Vue中调用浏览器打印的各种方法和最佳实践。基础打印方法1. 使用window.print()最简单直接的打印方法就是使用浏览器原生的window.print()API:// 在Vue组件中使用export default { methods: { printPage 动态样式切换在Vue中动态添加打印样式类:<template>
前言 vue 翻页时钟制作基于 kuan-vue-flip-clock 插件,由于插件的样式比较固定,所以想要改变其样式需要自定义 效果 实现 vue2第一种方法 1.安装依赖 npm i kuan-vue-flip-clock 2.vue单文件,我这里是局部注册 <template>
特征 之所以要使用Log4j2 主要还是因为Log4j2 为我们提供了足够好用的支持,下面可以来看下Log4j2的一些特征: API分离: API 与实现是分开的。 开发入门 为了增加一点点的难度,也贴近一下平时开发使用的诉求,这里就以Log4j2绑定Slf4j的案例来说明,使用Slf4j来作为日志门面,使用Log4j2来实现具体的日志配置与打印。 业务日志打印: 将位于link.elastic包及其子包下的所有日志打印到logger.log日志里面。 非业务日志打印: 如果不满足link.elastic的包的日志则打印到控制台。 链路追踪Id打印: 详细的日志打印可以在Java代码中设置链路追踪Id TraceId打印日志的时候可以将其打印出来。 下面就来详细看下满足这样5个需求的日志配置是如何实现的吧。 ,前面控制台打印的日志就是非link.elastic包下的日志打印。
console.log再部署到线上 解决办法 通过配置插件,比如uglifyjs-webpack-plugin (打包慢) 自己解决:重写console.log方法(不影响打包速度) 由于公司项目用的是vue-cli2