业务需求

在开发时,遇到需求打印时既能切换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();},

步骤三:像凭证打印纸等尺寸,并非所有打印机都有内置,所以我们需要手动加

  1. 打开系统设置

  2. 打开打印服务器属性

  3. 设置自定义尺寸,设置好后可在打印页中找到更多,里面有打印尺寸

  4. 注意事项!!!!
    并非设置好了,所有的打印机都可以选择自定义尺寸,还会跟你的打印机硬件有关,有些打印机是不支持的。
    在项目中打印凭证纸测试全是靠客户的机子远程测试解决的,我们公司的打印机还是太菜了QAQ。

    基本上,打印页面的渲染即打印即所得,那么开发测试的时候咋整呢?
    可以在打印机里面更换驱动,但是驱动可能会有问题,打出来的全是外星文哈哈,所以千万不瞎打印,最好留一两张打印纸测试。



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

  1. 使用Vue @media print在JavaScript中插入不同尺寸的打印页面,可自定义尺寸大小和打印机配置

    本文介绍了如何在Vue项目中使用@media print和JavaScript来插入不同尺寸的打印页面,并提供了代码编写.使用教程.注意事项和避坑点,最后进行了总结. 一.介绍 在开发Web应用程序时 ...

  2. html打印页标题行,打印标题行的设置方法

    为了方便打印出来的Excel工作表的阅读,可以在各页打印上标题行.下面介绍打印标题行的设置方法. 1.打开需要打印的工作表,在"页面布局"选项卡的"页面设置"组 ...

  3. Java 打印功能带预览,自定义纸张大小

    效果图 package print; import java.awt.*; import java.awt.print.*; import javax.print.PrintService; impo ...

  4. html表格分页打印样式,vue部分打印(多页自动分页、打印样式自定义、多页打印表格页面顶部带表头)...

    写在前面:注意打印表格时,若需要多页打印,则尽量使用原生table元素实现,这样在分页时每页顶部会带有表头,用户体验比较好 一.引用插件(在 main.js 中全局引入!!注意,需要修改源码,所以尽量 ...

  5. 打印jQuery.print.min.js 使用总结

    项目中遇到打印报表的要求,需要只打印报表部分而不是整个页面,一般直接调用系统的方法window.print(),会打印整个页面,发现jQuery.print.min.js 很好用,下面和大家分享下打印 ...

  6. python静默打印pdf_前端静默打印实现 html pdf集合

    一.初步实现 前段时间,公司有个需求,要实现前端静默(点击按钮直接打印,不需要预览),本想着直接用window.print()来实现,让用户多点击一下按钮的事儿,无奈我们的产品: 最后只好继续要网上继 ...

  7. 批量打印之jquery局部打印

    上个月弄了个批量打印的功能,觉得以后可能用得着,就写个博客记一下,免得忘记了.说这个之前,先来说一下我用过的两个打印插件,一个是Jquery打印插件(这次开始用的),一个是smsx.cab控件的打印插 ...

  8. Android官方开发文档Training系列课程中文版:打印内容之图像打印

    原文地址:http://android.xsoftlab.net/training/printing/index.html 引言 Android用户会很频繁的浏览设备上的内容,但是有部分情况例外,当屏 ...

  9. 打印报告 使用A5纸张横向放入HP打印机 Grid++Report6

    打印报告 使用A5纸张 横向放入HP打印机 配置方式如下:

最新文章

  1. c语言输出n以内完数,c语言:输入n,输出不超过n的全部完全数。能帮忙找出怎么错么?...
  2. nRF52832 — 连接指定name、UUID、addr的蓝牙设备
  3. java第六章工具包6.2.Collection Streams 2020.4.7
  4. 关于敏捷开发方法(Agile Software Development)的阅读笔记
  5. 决策树1 -- ID3_C4.5算法
  6. HTML思维导图+学习笔记+实际案例
  7. 啦啦外卖独立版41.4+全插件+可运营版本+开源(亲测100%可用)
  8. MATLAB--数字图像处理 车牌识别之分离字符
  9. java从输入中获取经纬度_java从百度后台接口获取经纬度
  10. 【Linux】嵌入式Linux系统的移植(上篇:交叉编译器、连接方式)
  11. 追风筝的人 第九章
  12. 2020 ICM Weekend 1 Problem E: Drowning in Plastic
  13. JNOJ 江南在线评测系统 搭建
  14. ICG-Maleimide|吲哚菁绿-马来酰亚胺|开发共轭物
  15. 麒麟linux挂载u盘,银河麒麟操作系统U盘手动挂载,出现乱码
  16. 金融工程知识学习——限价单、止损单、市价单
  17. tomcat中编码配置
  18. ShopsN开源多用户商城系统近期将提供下载
  19. 华为平板m3不升级鸿蒙,【简讯】AMD Zen4最新消息:IPC提升20%;realme徐起:手机市场下半年必迎涨价潮…...
  20. excel简单vba读写TXT的交互

热门文章

  1. 研究生毕业后做前台,是不是很low
  2. 全网最全的DP和HDMI区别
  3. C#+AE地图文档的相关操作,包括新建打开保存等
  4. html+css3基础知识部分详记
  5. 13_被讨厌的勇气书摘
  6. 德国杀软小红伞AntiVir Personal Edition 使用教程(免费版)
  7. Redis:哨兵(sentinel)
  8. qt 实现UDP通信简单案例
  9. 06 |「链表」必刷题
  10. 蓝牙连接每次弹出确认框问题的排查及解决