一. 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.documentElement var oscript = document.createElement('script') // 让本机的浏览器打印(更优先一点): oscript = document.createElement('script') oscript.src = 'http://localhost:8000/CLodopfuncs.js"htmlcode"><template> <div class="umess table-dialog"> <!-- 表格组 --> <div class="umess table-main"> <div class="title">{{ tabName }}</div> <!-- 导入导出 --> <div class="btn-top-list"> <el-button type="primary" plain @click="exportReport">导出报表</el-button> <el-button type="primary" plain @click="printReport">打印报表</el-button> </div> <!-- 表格组 --> <div id="tableId" class="table-box"> <table class="utable"> <caption><b><font face="黑体" size="3">{{ tabName }}</font></b></caption> <thead> <tr v-for="(tr,index) in tableHead" :key="index"> <td v-for="(item,i) in tr" :key="i" :colspan="item.cols" :rowspan="item.rows" :min-width="item.width">{{ item.value }}</td> </tr> </thead> <tbody> <tr v-for="(item,index) in tableBody" :key="index"> <td v-for="(td, i) in item" :key="i" :colspan="td.cols" :rowspan="td.rows"> <div class="td1">{{ td.value }}</div> </td> </tr> </tbody> </table> </div> </div> <!-- end --> </div> </template> <script> import { tableHead, tableResolve } from '../excelTem/reportOne.js' import getLodop from '@/api/lodop' export default { data() { return { tabId: '', tabName: '', tableHead: tableHead, tableBody: [] } }, mounted() { }, methods: { // 打印报表 printReport() { const LODOP = getLodop() if (LODOP) { var strBodyStyle = '<style>' strBodyStyle += 'table { border-top: 1 solid #000000; border-left: 1 solid #000000; border-collapse:collapse; border-spacing:0;}' strBodyStyle += 'caption { line-height:2em; }' strBodyStyle += 'td { border-right: 1 solid #000000; border-bottom: 1 solid #000000; text-align:center; padding:2px 3px; font-size:11px;}' strBodyStyle += '</style>' //设置打印样式 var strFormHtml = strBodyStyle + '<body>' + document.getElementById('tableId').innerHTML + '</body>' //获取打印内容 LODOP.PRINT_INIT('') //初始化 LODOP.SET_PRINT_PAGESIZE(2, 0, 0, 'A4') //设置横向 LODOP.ADD_PRINT_HTM('1%', '1%', '98%', '98%', strFormHtml) //设置打印内容 LODOP.SET_PREVIEW_WINDOW(2, 0, 0, 800, 600, '') //设置预览窗口模式和大小 LODOP.PREVIEW() } } } } </script>以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]