200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > vue @media print使用js插入打印页不同尺寸打印 可自定义尺寸大小 打印机配置

vue @media print使用js插入打印页不同尺寸打印 可自定义尺寸大小 打印机配置

时间:2021-06-07 14:22:06

相关推荐

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。

基本上,打印页面的渲染即打印即所得,那么开发测试的时候咋整呢?

可以在打印机里面更换驱动,但是驱动可能会有问题,打出来的全是外星文哈哈,所以千万不瞎打印,最好留一两张打印纸测试。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。