vue 打印页面(解决打印预览不全的问题)
不同分辨率下,页面内容打印不全的问题
参考的博客
https://www.cnblogs.com/scallop/p/14184580.html
参考的博客(scallop)
安装插件
print-js,html2canvas
页面使用
<template><div><el-button class="acticedBtn" @click="printFn">打印</el-button><div ref="printId">打印的内容</div></div>
</template>
<script>
import printJS from 'print-js';
import html2canvas from 'html2canvas';
export default {methods:{printFn(){const printContent = this.$refs.printId;// 获取dom 宽度 高度const width = printContent.clientWidth;const height = printContent.clientHeight;// 创建一个canvas节点const canvas = document.createElement('canvas');const scale = 4; // 定义任意放大倍数,支持小数;越大,图片清晰度越高,生成图片越慢。canvas.width = width * scale; // 定义canvas 宽度 * 缩放canvas.height = height * scale; // 定义canvas高度 *缩放canvas.style.width = width * scale + 'px';canvas.style.height = height * scale + 'px';canvas.getContext('2d').scale(scale, scale); // 获取context,设置scaleconst scrollTop = document.documentElement.scrollTop || document.body.scrollTop; // 获取滚动轴滚动的长度const scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft; // 获取水平滚动轴的长度html2canvas(printContent, {canvas,backgroundColor: null,useCORS: true,windowHeight: document.body.scrollHeight,scrollX: -scrollLeft, // 解决水平偏移问题,防止打印的内容不全scrollY: -scrollTop}).then((canvas) => {const url = canvas.toDataURL('image/png')printJS({printable: url,type: 'image',documentTitle: '', // 标题style: '@page{size:auto;margin: 0cm 1cm 0cm 1cm;}' // 去除页眉页脚})}).catch(err=>{console.error(err);})}}
}
</script>
vue 打印页面(解决打印预览不全的问题)相关推荐
- vue 项目中实现pdf预览 pdf打印 pdf下载
在Vue项目中实现PDF预览.打印和下载可以通过以下步骤来实现: 安装pdf.js pdf.js是一个JavaScript库,可以用于在Web上渲染PDF文件. 可以使用npm安装pdf.js,命令如 ...
- 不同的电脑打印预览不同怎么解决_条码打印软件中标签预览正常打印无反应怎么解决...
在使用条码打印软件制作标签时,有客户反馈,标签打印预览正常的,但是打印无反应,咨询是怎么回事?今天针对这个情况,可以参考以下方法进行解决. 一.预览正常情况下,打印没反应 (1)在条码打印软件中设计好 ...
- 谷歌浏览器打印不弹出预览直接打印机打印
谷歌浏览器打印不弹出预览直接打印机打印 注意 --kiosk-printing前面有个空格 这个浏览器还是会弹出自带打印页,不过会马上消失的
- 前端vue利用flexpaper实现在线预览
前端vue利用flexpaper实现在线预览 下载flexpaper 只需要用到js文件和FlexPaperViewer.swf: flexpaper_flash_debug.js flexpaper ...
- vue本地上传并预览php,vue.js 实现图片本地预览 裁剪 压缩 上传功能
以下代码涉及 Vue 2.0 及 ES6 语法. 目标 纯 javascrpit 实现,兼容ie9及以上浏览器,在本地做好文件格式.长宽.大小的检测,减少浏览器交互. 现实是残酷的,为了兼容Ie9 还 ...
- Python excel转成html页面 excel 在线预览
Python excel转成html页面 excel 在线预览 因为这两天公司的项目要用到在浏览excel 所以就在做这个功能.一开始查了很多资料 都是各种不行,最后好不容易找到一些辅助资料 终于是今 ...
- vue移动端实现图片预览
接着上文的文件上传.下载.删除继续往下说,我们先说移动端的图片格式预览 上文说到了vue引用了vant插件,是一个很好用的移动端开发组件,它自带了上传文件的方法,当然也带了图片预览的方法 图片预览其实 ...
- Vue前端JavaScript实现PDF预览与图片预览
Vue前端JavaScript实现PDF预览与图片预览 说明 PDF.JS 代码实现 预览测试 embed与iframe标签 `<embed>` `<iframe>` 浏览器预 ...
- vue实现移动端图片预览
vue实现移动端图片预览 1.安装插件 2.main引入 3.使用 注意 扩展 通过使用vue-photo-preview插件,实现移动端图片的预览,全屏等功能. 1.安装插件 npm install ...
最新文章
- [pcl::VoxelGrid::applyFilter] Leaf size is too small for the input dataset. Integer indices would ov
- 菜鸟学习之linux用户行为日志审计方案
- 说说你对 SVG 理解?
- 自动删除指定文件夹下N天前文件的批处理
- python 闭包变量不允许write,要使用nonlocal
- linux下配置ip地址四种方法(图文)
- P3385 【模板】负环
- eDMA结构及工作机理的简单介绍
- JMeter 性能测试进阶实战
- Spring Security使用出现 Encoded password does not look like BCrypt异常的解决以及Spring Securit加密方式的学习
- 字体样式 font-family 0911
- Mybatis批量删除Oracle语句,mybatis-oracle(ssi2)批量删除
- zyplayer-doc 1.0.1 发布,你家所需的文档管理工具他都承包了!
- 机器学习(1)——基础概念
- Java数组--数组常用的办法;
- Oracle12c错误01017,ORACLE12.2中用户无法登陆报ORA-01017的解决办法
- 使用Thumbnails实现图片指定大小压缩
- 大数据早报:极课大数据获得1亿元融资 美科学家利用机器学习挖出人们背后的自杀行为(11.1)
- totolink服务器未响应,totolink路由器登陆页面打不开怎么办
- Beaglebone Black – 连接 GY-91 MPU9250+BMP280 九轴传感器(1)
热门文章
- java点赞关注功能_谈谈用户倾向系统“点赞”“收藏”“喜欢”“关注”的区别...
- veryCD 不能下载了,我们该怎么办?
- 队列——火车重排问题
- 斐波那契数列(C语言版)
- sim卡没坏但苹果手机无服务_iPhone8手机无服务,显示无SIM卡接打不了电话,你中过招吗?...
- 信号处理之巴特沃斯滤波器的理解----2022/11/30
- 关于Unity HDR Color
- 程序员诗词大赛开始了_你看过吗?
- Lua教程-1:C/C++操作Lua数组和字符串
- js计算皮尔逊相关系数