在PC端想用浏览器打印,要既要实现A3、A4大小,又要实现横向、纵向的布局,在开始接到这个需求之前我是没有参与过打印开发的项目,刚开始确实很棘手,后来经过百度查找和自己一点一点的研究最终实现这样的效果。

需求(只针对纸张大小和布局):

实现思路:

一、

A4 横向:297*210mm;

纵向:210*297mm;

A3 横向:420*297mm;

纵向:297*420mm;

纸张用的mm,而web用的是px,

既然是要在PC端打印,自然是要px;

function  mmConversionPx(value) {

var inch = value / 25.4;

var c_value = inch * this.conversion_getDPI()[0];

return c_value;

} // 这段代码摘自网上的,目的是将mm转pc,这个很重要,我是掉坑里才发现的

二、

打印时,会发现有些不要的元素也会在打印里出现,这时我用了jqprint插件,我大概理解目的是建了个iframe的模板(页面上是看不到的),把我要打印的内容放到iframe里然后在打印,这样也不会影响页面显示,代码

$("#screen").jqprint({

debug: false, //如果是true则可以显示iframe查看效果(iframe默认高和宽都很小,可以再源码中调大),默认是false

importCSS: true, //true表示引进原来的页面的css,默认是true。(如果是true,先会找$("link[media=print]"),若没有会去找$("link")中的css文件)

printContainer: true, //表示如果原来选择的对象必须被纳入打印(注意:设置为false可能会打破你的CSS规则)。

operaSupport: true, //表示如果插件也必须支持歌opera浏览器,在这种情况下,它提供了建立一个临时的打印选项卡。默认是true

paper:'a4',   // 我加的纸张大小  a4  a3

layout:'landscape', // 我加的布局    landscape :横向      portrait:纵向

});

但是这个插件并没有解决我纸张大小和布局的问题,所以我就研究了下jqprint的插件原理,小改变了下,如图:

然后打印就能自如调控纸张大小和布局啦,开心。

最后,写的不太好,如有错误和需要改进的地方,欢迎大家分享于我讨论,谢谢。

加油,越来越努力!!!

关于PC端浏览器打印相关推荐

  1. html浏览器pc端禁止缩放,阻止pc端浏览器缩放js代码

    阻止pc端浏览器缩放js代码 众所周知:移动端页面禁止用户缩放界面只需加上即可,但是pc端确实比较麻烦,用户可以通过如下几种方式来缩放: windows: ctrl + +/- ctrl + 滚轮 浏 ...

  2. CSS 利用@media screen判断识别手机/PC端浏览器

    一.写此篇的初衷: 手机用户常可以更换自己手机系统的字体,那么在浏览网页的时候,网页内容字体也都随之变了,于是我想,能不能让自己的网站的字体在手机浏览器中保持不变(使用一款自定义字体)呢:而在PC端浏 ...

  3. 如何实现自定义倍速播放PC端浏览器中的视频

    如何实现自定义倍速播放PC端浏览器中的视频 随机打开一个有视频的浏览器 按键[F12]弹出窗口 点击console或控制台 在红框处输入代码 document.querySelector(" ...

  4. 判断当前入口是PC端企业微信还是PC端浏览器。或者是APP端企业微信

    function isQyweixin(){//判断当前入口是PC端还是APP端let flag = navigator.userAgent.match(/(phone|pad|pod|iPhone| ...

  5. cocos creator屏幕适配fitHeight / fitWidth,手机端竖屏,pc端浏览器适配,pc分辨率全屏适配,血条跟随的适配

    一,使用creator3.3.2 分别实现手机端和浏览器的适配效果如下 打包web-mobile(居然会有这种需求 /流汗!) pc浏览器显示 手机端显示 1.首先在项目中设置分辨率 和默认适配 这里 ...

  6. 【第十六篇】 理想视口pc端浏览器移动端浏览器元素单位

    VScode关键点 类型 快捷方式 关键字 举例 理想视口 viewport 理想视口 width=device-width 网页宽度等于设备的宽度 initial-scale=1.0 是否缩小页面 ...

  7. 微信PC端浏览器内置浏览器

    嵌入式Chromium框架(简称CEF) 是一个由Marshall Greenblatt在2008建立的开源项目,它主要目的是开发一个基于Google Chromium的Webbrowser控件,支持 ...

  8. 手机端和pc端浏览器兼容性问题

    1⃣️  如何解决不同浏览器的标签默认的内外补丁的不同: 解决方法: 在css里开头用通配符来设置内外补丁标签内外补丁为0: 2⃣️  块元素设置float后,又有横行的margin情况下,在IE6中 ...

  9. 移动端和pc端浏览器兼容问题及处理

    一.关于移动端兼容性 目前针对跨终端的方案,主要分为两大阵营:一套资源Vs两套资源. 第一种是通过响应式或页面终端判断去实现一套资源适配所有终端: 第二种是通过终端判断分别调取两套资源以适配所有终端. ...

最新文章

  1. 常用jar包之commons-beanutils使用
  2. Springboot整合RabbitMq-用心看完这一篇就够了(最新)
  3. 陌上花开 HYSBZ - 3262 (CDQ分治)
  4. c语言单字符输入和输出函数分别为,第03章单元总练习-实训-知识拓展.doc
  5. Ae/Pr画面破损信号干扰插件包TV Distortion Bundle的5个不同效果插件
  6. c++ 构造函数数组_“动态数组”的设计与实现
  7. 12306 出招抢票软件,技术黄牛生意要“黄”?
  8. MATLAB——zeros
  9. linux救援模式详解,Linux系统的救援模式应用详解
  10. 从零开始的腾讯电脑管家下载安装配置教程
  11. win10系统开启扫描仪服务器,win10通用扫描仪安装步骤
  12. latex中的希腊字母
  13. PHP代码审计8—SSRF 漏洞
  14. SPSS(二)SPSS实现多因素方差分析模型(图文教程+数据集)
  15. html5做ui自动化,案例赏析:某WEB系统UI自动化测试方案
  16. D3.js 中Bubble Chart详解
  17. 第一次作业:阅读与准备工作
  18. 4种整流5种滤波电路总结
  19. 公司项目中的biz层和manager层是干啥的
  20. 设计一个文件系统,需要考虑哪些因素?

热门文章

  1. Mosaicking to Distill Knowledge Distillation from Out-of-Domain Data
  2. matlab编写求解二阶常微分方程,求一个复杂的二阶常微分方程的数值解,不会写代码= =...
  3. 如何取消掉计算机更新图标,本文演示win10电脑更新图标怎么去掉的具体操作方式...
  4. php使用phpword教程,使用PHPWord生成word文档
  5. SHT30温湿度模块使用
  6. Studio 3T 的Query Builder使用
  7. php在线备忘录,PHP设计模式 - 备忘录模式
  8. 在高德地图中获取鼠标点击的经纬度
  9. OSChina 周五乱弹 —— 夏日限定梦想
  10. ESP8266入门教程-ESP8266睡眠和唤醒功能