时间:2021-05-25
项目中使用到打印的功能。领导推荐使用Lodop
Lodop是什么东东,反正就是可以定制打印的插件。。。
既然是插件,vue的渐进式开发。完全可以拿来化为己用。
如何使用那?先大概看了下开发文档,就是一堆demo,一个js文件,三个安装程序,我擦,这么简单。come on 电脑安装C-Lodop,就可以打印预览来了。
开工,翻来覆去就一个LodopFuncs.js是干货,扔到项目中。就差怎么调里面的方法了。
如何引用,当然得改造喽
LodopFuncs.js 方法改造如下
//====判断是否需要安装CLodop云打印服务器:====export function needCLodop(){ ...... }//====获取LODOP对象的主过程:====export function getLodop(oOBJECT,oEMBED){ ...... }完事,然后就是怎么使用了
在具体的调用页面
import {getLodop} from '../common/LodopFuncs'...... methods: { printPdf() { this.CreateOneFormPage();// LODOP.PRINT(); LODOP.PREVIEW(); }, CreateOneFormPage() { LODOP = getLodop(); LODOP.PRINT_INIT("订货单"); LODOP.SET_PRINT_STYLE("FontSize", 18); LODOP.SET_PRINT_STYLE("Bold", 1); LODOP.ADD_PRINT_TEXT(50, 231, 260, 39, "打印页面部分内容"); LODOP.ADD_PRINT_HTM(88, 200, 350, 600, document.getElementById("form1").innerHTML); }, }......你以为就这么多。对的就这
现在碰见个指令打印问题,在项目中直接把部分指令都打印出来了,不能打印出正常样式,™
现在都是驱动打印机,暂时不考虑指令的....
常见问题:浏览器alert警告lodop打印出错之类的,首先得把lodop本地服务打开。
鉴于好多人提问,完整的代码还是贴出来吧。(没修改什么东西啊....)
LodopFuncs.js
var CreatedOKLodop7766=null;//====判断是否需要安装CLodop云打印服务器:====export function needCLodop(){ try{ var ua=navigator.userAgent; if (ua.match(/Windows\sPhone/i) !=null) return true; if (ua.match(/iPhone|iPod/i) != null) return true; if (ua.match(/Android/i) != null) return true; if (ua.match(/Edge\D?\d+/i) != null) return true; var verTrident=ua.match(/Trident\D?\d+/i); var verIE=ua.match(/MSIE\D?\d+/i); var verOPR=ua.match(/OPR\D?\d+/i); var verFF=ua.match(/Firefox\D?\d+/i); var x64=ua.match(/x64/i); if ((verTrident==null)&&(verIE==null)&&(x64!==null)) return true; else if ( verFF !== null) { verFF = verFF[0].match(/\d+/); if ((verFF[0]>= 42)||(x64!==null)) return true; } else if ( verOPR !== null) { verOPR = verOPR[0].match(/\d+/); if ( verOPR[0] >= 32 ) return true; } else if ((verTrident==null)&&(verIE==null)) { var verChrome=ua.match(/Chrome\D?\d+/i); if ( verChrome !== null ) { verChrome = verChrome[0].match(/\d+/); if (verChrome[0]>=42) return true; }; }; return false; } catch(err) {return true;};};//====页面引用CLodop云打印必须的JS文件:====if (needCLodop()) { var head = document.head || document.getElementsByTagName("head")[0] || document.documentElement; var oscript = document.createElement("script"); oscript.src ="http://localhost:8000/CLodopfuncs.js?priority=1"; head.insertBefore( oscript,head.firstChild ); //引用双端口(8000和18000)避免其中某个被占用: oscript = document.createElement("script"); oscript.src ="http://localhost:18000/CLodopfuncs.js?priority=0"; head.insertBefore( oscript,head.firstChild );};//====获取LODOP对象的主过程:====export function getLodop(oOBJECT,oEMBED){ var strHtmInstall="<br><font color='#FF00FF'>打印控件未安装!点击这里<a href='install_lodop32.exe' target='_self'>执行安装</a>,安装后请刷新页面或重新进入。</font>"; var strHtmUpdate="<br><font color='#FF00FF'>打印控件需要升级!点击这里<a href='install_lodop32.exe' target='_self'>执行升级</a>,升级后请重新进入。</font>"; var strHtm64_Install="<br><font color='#FF00FF'>打印控件未安装!点击这里<a href='install_lodop64.exe' target='_self'>执行安装</a>,安装后请刷新页面或重新进入。</font>"; var strHtm64_Update="<br><font color='#FF00FF'>打印控件需要升级!点击这里<a href='install_lodop64.exe' target='_self'>执行升级</a>,升级后请重新进入。</font>"; var strHtmFireFox="<br><br><font color='#FF00FF'>(注意:如曾安装过Lodop旧版附件npActiveXPLugin,请在【工具】->【附加组件】->【扩展】中先卸它)</font>"; var strHtmChrome="<br><br><font color='#FF00FF'>(如果此前正常,仅因浏览器升级或重安装而出问题,需重新执行以上安装)</font>"; var strCLodopInstall="<br><font color='#FF00FF'>CLodop云打印服务(localhost本地)未安装启动!点击这里<a href='http://mon/LodopFuncs' export default { name: "demo", data() { return {} }, methods: { // 查询数据 printPdf() { let LODOP = getLodop(); LODOP.PRINT_INIT("订货单"); LODOP.SET_PRINT_STYLE("FontSize", 18); LODOP.SET_PRINT_STYLE("Bold", 1); LODOP.ADD_PRINT_TEXT(50, 231, 260, 39, "打印页面部分内容"); LODOP.ADD_PRINT_HTM(88, 200, 350, 600, document.getElementById("form1").innerHTML);// LODOP.PRINT(); LODOP.PREVIEW(); }, } }</script>以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Gradle插件代码可以在build.gradle中,buildSrc项目中,以及独立的插件项目中编写。本文将介绍如何在一个独立的项目中使用Java语言编写Gr
本文主要介绍了vue项目中使用print.js打印,解决多页,分页,打印预览样式修改等问题。引入安装vue-print.jscnpmivue-printjs--
在vue构建的项目中,我们常用element-ui插件,在我的博客前面有讲述,具体怎么用vue-i18n插件进行国际化开发,但是在前面博客中,如果项目中使用了e
本文介绍了如何在vue中使用ts的示例代码,分享给大家,具体如下:注意:此文并不是把vue改为全部替换为ts,而是可以在原来的项目中植入ts文件,目前只是实践阶
1.在很多的项目中,我们都会用到日期插件,然后当我在vue中使用bootstrapdatetimepicker时发现双向绑定不起作用了,bootstrapdat