js实现直接打印pdf文件内容解决方案

需求:

网页上通过js调用打印机打印pdf文件,然后直接打开打印机,就是直接打印,不用用户再次点击打印按钮,这样用户体验好,

 

经历:

我在网上找了资料就是使用window.print(),但是这个只是打印标签的内容,对于pdf的url里面的内容是打印不出的,听说网上有插件pdf.js等等.

感觉也没什么用,最后自己也不知道怎么搞,弄了很久就知道有人用iframe加载pdf再打印所以参考一下就真的可以打印,忽然感觉大神都在灯火阑珊处!

主要代码:

标签iframe代码

1

<iframe style="display:none" id="printIframe" src="<%=data%>"></iframe>

JavaScript代码,很简单,其实被我简化了很多

1

2

3

4

5

6

7

8

9

10

<script type="text/javascript">

$(document).ready(function(){

          doPrint();

});

//点击打印按钮,触发事件】

function doPrint(){

    $("#printIframe")[0].contentWindow.print();

}

</script>

<%=data%>就是我的pdf的路径,这不足10行的代码就能解决的问题我也找了很久,然而美中不足的是还需要二次确认打印,不能静默打印

 

解决方案

偶然浏览到有浏览器打印插件这类程序,于是找到软件介绍 · 优声云办公文档打印组件 · 看云

觉得很不错,看了下原理介绍

原理是通过在电脑上安装一个客户端,然后通过浏览器与之通信实现本地静默打印。

客户端相当于一个本地server,本机浏览器通过ajax访问本地server,发送文件地址以及者打印相关信息给这个本地server,本地server再通过文件地址下载需要打印文件,再发送给打印机实现打印。本地server由于是本地客户端,权限高,能够调用操作系统丰富的API,从而实现浏览器实现不了的一些功能,比如打印PDF文件,打印订单收银小票等

通过在电脑上安装这个组件,终于可以实现静默打印了

 

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值