Vue使用lodop实现打印小结
前端  /  管理员 发布于 4年前   702
一. Lodop与C-Lodop的区别
Lodop打印控件是浏览器插件,与浏览器紧密结合来实现本地打印,是一种内嵌到浏览器里交互方式。(适用浏览器:ie系列、火狐51版及历史版本、谷歌44版及历史版本。(新版火狐及谷歌不再支持np插件,也不能使用lodop))
C-Lodop打印服务是以提供服务方式解决web打印,摆脱了对浏览器的依赖,解决了新版谷歌(45版及后续版本)、64位火狐、edge等浏览器不再支持Lodop插件方式的情况,C-Lodop打印服务支持所有浏览器。
既然C-Lodop可以替代Lodop并且支持所有浏览器,实际开发过程中可以直接使用C-Lodop进行完成打印需求
二.vue中使用Lodop
1 把官方提供的LodopFuncs.js文件保存到某个目录下,如myProject\src\assets\LodopFuncs.js
2 修改LodopFuncs.js文件, 在文件最底部添加一行代码 export { getLodop }; //导出getLodop
3 在打印事件处理函数所在文件里 import 该 module 在打印事件函数中调用getLodop获取LODOP对象变量,按照官方教程书写自己的打印函数,通过 PRINT、PREVIEW、PRINT_DESIGN进行输出。
三.实例代码
1. LodopFuncs.js由于选择了C-Lodop打印服务,也就不再需要进行对各浏览器进行判断了,也不再需要各种提示下载哪个版本的控件了
改写后的lodopFuncs.js如下图所示,项目需求中引入了element的组件,提醒用户点击确认后下载打印控件 (win32NT.exe既支持32位也支持64位的系统,也就不用对用户操作系统进行判断了直接下载安装后刷新页面使用就好)
2. template模板代码
小提示: 注意id放置位置,引用的是documnet.getElmentById('tableId').innerHTML
示例: 进行getLodop的引用 import getLodop from '你的LodopFuncs.js 的路径'
打印报表的方法进行代码编写,主要程序就三行代码 let LODOP = getLodop()//调用getLodop获取LODOP对象
LODOP.PRINT_INIT("") LODOP.ADD_PRINT_TEXT(50, 231, 260, 39, "打印内容") LODOP.PREVIEW()
但实际项目需求中,需要对用户进行判断,判断用户是否已安装打印服务,如果没有安装要提示用户下载安装,已安装好可以提示直接安装
打印的样式根据项目的需求也会有不同,有的是打印表格,有的是文本 有的是图片,用户根据官方文档操作写样式,字体大小,横竖版设置等等
四.附源码
import { MessageBox } from 'element-ui'// ====页面动态加载C-Lodop云打印必须的文件CLodopfuncs.js====var head = document.head || document.getElementsByTagName('head')[0] || document.documentElementvar oscript = document.createElement('script')// 让本机的浏览器打印(更优先一点):oscript = document.createElement('script')oscript.src = 'http://localhost:8000/CLodopfuncs.js?priority=2'head.insertBefore(oscript, head.firstChild)// 加载双端口(8000和18000)避免其中某个端口被占用:oscript = document.createElement('script')oscript.src = 'http://localhost:18000/CLodopfuncs.js?priority=1'head.insertBefore(oscript, head.firstChild)// 下载loadLodopfunction loadLodop() { window.open('../../static/Lodop/CLodop_Setup_for_Win32NT.exe')}// ====获取LODOP对象的主过程:====function getLodop() { var LODOP try { LODOP = getCLodop() if (!LODOP && document.readyState !== 'complete') { MessageBox.alert('C-Lodop打印控件还没准备好,请稍后再试!') return } return LODOP } catch (err) { MessageBox({ title: '温馨提示', type: 'warning', showCancelButton: true, message: '您还未安装打印控件,点击确定下载打印控件,安装成功后刷新页面即可进行打印', callback: res => { if (res === 'confirm') { loadLodop() } } }) }}export default getLodop
{{ tabName }}导出报表 打印报表
{{ tabName }} {{ item.value }} {{ td.value }}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
您可能感兴趣的文章:
- 详解如何在vue项目中使用lodop打印插件
- Vue中使用Lodop插件实现打印功能的简单方法
Top
- 相关文章
- 使用 Alpine.js 排序插件对元素进行排序(0个评论)
- 在js中使用jszip + file-saver实现批量下载OSS文件功能示例(0个评论)
- 在vue中实现父页面按钮显示子组件中的el-dialog效果(0个评论)
- 使用mock-server实现模拟接口对接流程步骤(0个评论)
- vue项目打包程序实现把项目打包成一个exe可执行程序(0个评论)
- 近期文章
- 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
- gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
- 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
- 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
- Laravel从Accel获得5700万美元A轮融资(0个评论)
- 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
- 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
- PHP 8.4 Alpha 1现已发布!(0个评论)
- Laravel 11.15版本发布 - Eloquent Builder中添加的泛型(0个评论)
- Laravel 11.14版本发布 - 新的字符串助手和ServeCommand改进(0个评论)
- 近期评论
123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..路人 在
php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号