vue @media print使用js插入打印页不同尺寸打印,可自定义尺寸大小,打印机配置
业务需求
在开发时,遇到需求打印时既能切换A4纸张,又能切换成凭证纸张。而使用 @media 设置尺寸后,影响所有页面,无法实现打印多尺寸的问题。
打印技术
使用浏览器自带的 print 打印技术
打印基础
使用此语法即可完成调出浏览器实现局部打印
startprint 和 endprint 设置打印的内容,只会打印两者包含的部分。
<!--startprint--><div class="data_page">{{打印内容}}</div><!--endprint-->doPrint() {window.print();},
当设置打印页面尺寸时,我通常在 css 样式中直接 使用 @media print
使用 @media 查询,你可以针对不同的媒体类型定义不同的样式。
print 用于打印机和打印预览
@media print {@page {size: 21cm 29.7cm;margin: 0;padding: 0;}.noprint {display: none;}}
系统中配置不同尺寸打印
由于 vue 是单页面的项目,在 css 样式中直接使用@media print 会影响到全局,所有在项目中无法使用。
思路:在项目中使用 js 的方式添加到页面中。
步骤1 : 将项目中 css 的 @media print 去除
步骤2 : 在 doPrint 方法中添加 js
此处案例为 凭证纸张的大小,并设置了出血的margin。
每个打印上都要手动加上打印尺寸。
doPrint() { var style = document.createElement('style');//portrait 纵向 landscape横向style.innerHTML = "@media print { @page {size:210mm 230mm!important; margin: 0;padding: 0;margin-top:8.2mm;margin-left:10.05mm;margin-right:5.05mm;margin-bottom:0mm;} .noprint { display: none;}}";window.document.head.appendChild(style);window.print();},
步骤三:像凭证打印纸等尺寸,并非所有打印机都有内置,所以我们需要手动加
打开系统设置
打开打印服务器属性
设置自定义尺寸,设置好后可在打印页中找到更多,里面有打印尺寸
注意事项!!!!
并非设置好了,所有的打印机都可以选择自定义尺寸,还会跟你的打印机硬件有关,有些打印机是不支持的。
在项目中打印凭证纸测试全是靠客户的机子远程测试解决的,我们公司的打印机还是太菜了QAQ。
基本上,打印页面的渲染即打印即所得,那么开发测试的时候咋整呢?
可以在打印机里面更换驱动,但是驱动可能会有问题,打出来的全是外星文哈哈,所以千万不瞎打印,最好留一两张打印纸测试。
vue @media print使用js插入打印页不同尺寸打印,可自定义尺寸大小,打印机配置相关推荐
- 使用Vue @media print在JavaScript中插入不同尺寸的打印页面,可自定义尺寸大小和打印机配置
本文介绍了如何在Vue项目中使用@media print和JavaScript来插入不同尺寸的打印页面,并提供了代码编写.使用教程.注意事项和避坑点,最后进行了总结. 一.介绍 在开发Web应用程序时 ...
- html打印页标题行,打印标题行的设置方法
为了方便打印出来的Excel工作表的阅读,可以在各页打印上标题行.下面介绍打印标题行的设置方法. 1.打开需要打印的工作表,在"页面布局"选项卡的"页面设置"组 ...
- Java 打印功能带预览,自定义纸张大小
效果图 package print; import java.awt.*; import java.awt.print.*; import javax.print.PrintService; impo ...
- html表格分页打印样式,vue部分打印(多页自动分页、打印样式自定义、多页打印表格页面顶部带表头)...
写在前面:注意打印表格时,若需要多页打印,则尽量使用原生table元素实现,这样在分页时每页顶部会带有表头,用户体验比较好 一.引用插件(在 main.js 中全局引入!!注意,需要修改源码,所以尽量 ...
- 打印jQuery.print.min.js 使用总结
项目中遇到打印报表的要求,需要只打印报表部分而不是整个页面,一般直接调用系统的方法window.print(),会打印整个页面,发现jQuery.print.min.js 很好用,下面和大家分享下打印 ...
- python静默打印pdf_前端静默打印实现 html pdf集合
一.初步实现 前段时间,公司有个需求,要实现前端静默(点击按钮直接打印,不需要预览),本想着直接用window.print()来实现,让用户多点击一下按钮的事儿,无奈我们的产品: 最后只好继续要网上继 ...
- 批量打印之jquery局部打印
上个月弄了个批量打印的功能,觉得以后可能用得着,就写个博客记一下,免得忘记了.说这个之前,先来说一下我用过的两个打印插件,一个是Jquery打印插件(这次开始用的),一个是smsx.cab控件的打印插 ...
- Android官方开发文档Training系列课程中文版:打印内容之图像打印
原文地址:http://android.xsoftlab.net/training/printing/index.html 引言 Android用户会很频繁的浏览设备上的内容,但是有部分情况例外,当屏 ...
- 打印报告 使用A5纸张横向放入HP打印机 Grid++Report6
打印报告 使用A5纸张 横向放入HP打印机 配置方式如下:
最新文章
- c语言输出n以内完数,c语言:输入n,输出不超过n的全部完全数。能帮忙找出怎么错么?...
- nRF52832 — 连接指定name、UUID、addr的蓝牙设备
- java第六章工具包6.2.Collection Streams 2020.4.7
- 关于敏捷开发方法(Agile Software Development)的阅读笔记
- 决策树1 -- ID3_C4.5算法
- HTML思维导图+学习笔记+实际案例
- 啦啦外卖独立版41.4+全插件+可运营版本+开源(亲测100%可用)
- MATLAB--数字图像处理 车牌识别之分离字符
- java从输入中获取经纬度_java从百度后台接口获取经纬度
- 【Linux】嵌入式Linux系统的移植(上篇:交叉编译器、连接方式)
- 追风筝的人 第九章
- 2020 ICM Weekend 1 Problem E: Drowning in Plastic
- JNOJ 江南在线评测系统 搭建
- ICG-Maleimide|吲哚菁绿-马来酰亚胺|开发共轭物
- 麒麟linux挂载u盘,银河麒麟操作系统U盘手动挂载,出现乱码
- 金融工程知识学习——限价单、止损单、市价单
- tomcat中编码配置
- ShopsN开源多用户商城系统近期将提供下载
- 华为平板m3不升级鸿蒙,【简讯】AMD Zen4最新消息:IPC提升20%;realme徐起:手机市场下半年必迎涨价潮…...
- excel简单vba读写TXT的交互