关于JS调用Adobe Reader ActiveX插件,在web环境下调用本地打印机执行静默打印的实现
因为之前被实施商的前端童鞋理直气壮的卡了脖子告诉我写不出来,让我很不爽,所以还是搜集了一些资料最终测试成功了。注意一下这个只能在IE10及以上的IE内核环境下可用(我只测试了这个环境,但是IE是没跑了,别的浏览器要用IE兼容模式才行),前提是安装了Adobe Reader插件,这个可以去官网下载。下面就直接甩代码了,没啥可解释的……
<!DOCTYPE html>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script type="text/javascript">function directpdfprint1() { try { var prt = document.getElementById("ob"); prt.printAllFit(1); } catch (e) { alert("未安装adobe reader插件,请联系管理员安装!"); }
}
window.onload = function () {directpdfprint1()
}
</script>
<head></head>
<body>
<div><OBJECT id="ob" width="0" height="0" border="0" CLASSID="CLSID:CA8A9780-280D-11CF-A24D-444553540000"><param name="SRC" value="http://localhost:9000/1.pdf"> </OBJECT>
</div>
</body>
上述代码可实现web静默打印(页面加载后自动执行),由于我一直也没有找到动态加载组件src属性的方法,所以选择了将页面由后端直接生成代码,并通过response直接回写,在回写过程中由后端对src进行修改达成动态效果。
@GetMapping("/test")
public void test(HttpServletRequest request , HttpServletResponse response) throws IOException {response.setContentType("text/html");response.setCharacterEncoding("UTF-8");PrintWriter out = response.getWriter();out.write("<!DOCTYPE html>\n" +"<script src=\"https://code.jquery.com/jquery-3.1.1.min.js\"></script>\n" +"<script type=\"text/javascript\">\n" +" \n" +"function directpdfprint1() { \n" +" try { \n" +" var prt = document.getElementById(\"ob\"); \n" +" prt.printAllFit(1); \n" +" } catch (e) { \n" +" \talert(\"未安装adobe reader插件,请联系管理员安装!\"); \n" +" }\n" +"}\n" +"window.onload = function () {\n" +" directpdfprint1() \n" +"} \n" +"</script>\n" +"<head>\n" +"\n" +"</head>\n" +"<body> \n" +"<div>\n" +" <OBJECT id=\"ob\" width=\"0\" height=\"0\" border=\"0\" CLASSID=\"CLSID:CA8A9780-280D-11CF-A24D-444553540000\">\n" +" <param name=\"SRC\" value=\"");//业务中可以动态替换30行数据out.write("http://localhost:9000/3.pdf");out.write("\"> \n" +" </OBJECT>\n" +"</div>\n" +"</body>\n" +"<style type=\"text/css\">\n" +" .one{\n" +" transform:rotate(90dge);\n" +" }\n" +"</style>");out.flush();}
好了,就是这样=。= 注意这个只会使用用户本地设置的默认打印机。拜拜
关于JS调用Adobe Reader ActiveX插件,在web环境下调用本地打印机执行静默打印的实现相关推荐
- 页面调用Adobe Reader自带的控件实现pdf打印
1.业务场景 一般的业务场景里,只需要将pdf文件下载到本地,然后打开直接打印就可以了. 但是,有的场景会考虑到pdf文件的敏感性,需要pdf文件不能被下载,只能打印且只能打印一次,这就需要考虑使用控 ...
- PDF预览组件 Adobe Reader ActiveX控件使用
打开PDF文件的两种方法: https://blog.csdn.net/sl1990129/article/details/78094602 本文介绍第二种: 1. Adobe Reader Acti ...
- 解决pip安装pygal在TensorFlow环境下调用失败问题
欢迎关注微信公众号[计算机视觉联盟] 获取更多前沿AI.CV资讯 使用pip安装pygal在Linux和OS X系统中,执行的命令如下: pip install --user pygal==1.7 在 ...
- 在控制台环境下调用MFC DLL崩溃的问题小结
使用MFC编写的DLL在MFC的程序中调用是没有任何问题的,但是如果在控制台环境下调用会出现崩溃的情况.解决方法如下,在MFC编写的DLL中添加下面一段代码,即可解决该问题: static AFX_M ...
- Pycharm环境下调用Qt desinger 常见问题以及解决方法
Pycharm环境下调用Qt desinger 常见问题以及解决方法 前言 问题1: 提示QT由于找不到msvcp140d.dll无法继续执行代码或者相关问题 问题2: This applicatio ...
- IE 8 中 JS 调用 adobe reader 打印 PDF 文档
1. 下载 adobe reader 软件,并在 IE 浏览器中启用 设置 -> 管理加载项 -> 启用 Adobe PDF Reader 2. Jsp 文件中 HTML 代码如下 < ...
- linux查看rabbitmq的插件,【linux环境下】RabbitMq的安装和监控插件安装
简介这篇文章主要介绍了[linux环境下]RabbitMq的安装和监控插件安装以及相关的经验技巧,文章约2904字,浏览量445,点赞数5,值得参考! [注意安装过程中,提示某些命令not found ...
- Adobe Reader 文档无法签名_Linux下的6款最好用的PDF文档阅览工具
目前,互联网在线图书与其他相关文档正越来越多的使用PDF格式的文件,因此如果你使用的是桌面Linux发行版,那么选择一个合适的PDF阅览器就变得格外重要. 在本文中我们列出了6个重要的PDF阅览器,它 ...
- nw.js环境下 调用第三方事例
nw.js node-webkit系列(25)child_process中spawn和exec方法的使用 child_process是nw.exe的一个内置模块,通过它可以实现创建多线程,并可实现主线 ...
最新文章
- [SPOJ705]不同的子串
- 华为-yolo系列详解
- iOS逆向之iOSOpenDev
- SD从零开始15 税(Taxes)
- 关于J2EE+DOTNET的一些网站
- MySQL高级 - 锁 - MySQL对锁的支持
- Java基本语法(11)--三元运算符
- HTML-浮动(特点-影响-居中)-定位
- 「旁门右道」CURL持久连接技巧
- C语言逐行读取文件内容
- 和女孩子约会,肢体接触是不是不礼貌?
- 【caffe】ubuntu配置matlab接口----matcaffe
- Spring ActiveMQ示例(第2部分)
- Android虚拟键盘上下左右键按下和弹起的响应事件
- 基于HTML5功能强大的滑块幻灯片
- win8 64位 iis8 安装.net1.1
- 利用工作流给Windows SharePoint Service 3.0添加Skype通知功能
- 火狐浏览器安装有道翻译插件
- 龙果 mycat mysql_龙果学院Spring Boot源码解析视频教程完整未加密(价值599)
- 儿童手表电话卡遇到问题需要怎么解决
热门文章
- 最小二乘法least-squares
- javascript输入某年月某日,判断是这一年的多少天
- AI歌手——超简单一键运用ACE Studio来训练模拟真人唱歌
- 约瑟夫问题与魔术(十)——魔术《完全控制》
- 上海大学计算机学院团委,【CES·活动】上海大学计算机学院首届“校友杯”羽毛球赛圆满落幕...
- 84-MongoDB高级介绍
- 专访Mockplus用户花生酱先生 | 金融行业的产品经理生涯
- Android studio 安卓开发常见问题(个人笔记系列)
- 运维监控系列(8)-Prometheus+Grafana监控常用微服务中间件Nacos、Seata、Rocketmq
- C++ 个人银行账户管理 综合实例62.10_date