Vue中使用Lodop插件实现打印功能的简单方法


Posted in Javascript onDecember 19, 2019

介绍

需要进行打印功能,Lodop就是实现需求的插件.就是引入对应的js-sdk,使用js调用对应的打印方法,然后就会调出客户端软件(需要用户安装),然后就可以在软件里面打印内容了.

使用方法

最小实现

实现打印必须要执行的3个最基本的方法

LODOP.PRINT_INIT("打印任务名");    //首先一个初始化语句 
LODOP.ADD_PRINT_TEXT(0,0,100,20,"文本内容一");//然后多个ADD语句及SET语句 
LODOP.PRINT();        //最后一个打印(或预览、维护、设计)语句

所有方法

  • PRINT_INIT(strPrintTaskName)打印初始化
  • SET_PRINT_PAGESIZE(intOrient,intPageWidth,intPageHeight,strPageName)设定纸张大小 (1横向2竖向,宽度,高度,页面大小名称宽高都设置为0的时候才可以设置"A5","A4")
  • ADD_PRINT_HTM(intTop,intLeft,intWidth,intHeight,strHtml)增加超文本项
  • ADD_PRINT_TEXT(intTop,intLeft,intWidth,intHeight,strContent)增加纯文本项
  • ADD_PRINT_TABLE(intTop,intLeft,intWidth,intHeight,strHtml)增加表格项(strHtml为html模板字符串)
  • ADD_PRINT_SHAPE(intShapeType,intTop,intLeft,intWidth,intHeight,intLineStyle,intLineWidth,intColor)画图形
  • SET_PRINT_STYLE(strStyleName, varStyleValue)设置对象风格
  • PREVIEW打印预览
  • PRINT直接打印
  • PRINT_SETUP打印维护
  • PRINT_DESIGN打印设计

在Vue中使用Lodop

下载lodop,把js文件放到utils里面,把里面两个方法修改为export function(暴露出去,让其他js文件import来用)

// 改造LodopFuncs.js
//====判断是否需要安装CLodop云打印服务器:====
export function needCLodop(){ ...... }

//====获取LODOP对象的主过程:====
export function getLodop(oOBJECT,oEMBED){ ...... }

写好打印方法的逻辑

// doPrint.js
import { getLodop } from '@/utils/LodopFuncs'

/**
 * 打印方法doPrint
 * @param {*} printConfig 任务名,上边距,左边距,宽度,高度,打印html内容,是否横屏,分页
 */
export default function({ name, top, left, width, height, htmlContent, isHorizontal }) {
 const LODOP = getLodop()
 LODOP.PRINT_INIT('订货单') // 打印初始化(打印任务名)
 LODOP.SET_PRINT_PAGESIZE(1, 0, 0, 'A4')
 LODOP.SET_PRINT_STYLE('FontSize', 18) // 样式
 LODOP.SET_PRINT_STYLE('Bold', 1)
 // LODOP.ADD_PRINT_TEXT(50, 231, 260, 39, '打印页面部分内容') // 添加纯文本内容
 // top,left,width,height,htmlContent
 LODOP.ADD_PRINT_HTM(88, 75, 650, 978, htmlContent) // 添加HTML模板内容
 // LODOP.PRINT(); // 直接打印
 LODOP.PREVIEW() // 预览
}

在use.js里面把打印方法挂载到全局方法

// use.js
import doPrint from '@/utils/doPrint'

Vue.prototype.$doPrint = doPrint
在vue页面中使用
 this.$doPrint(data)
 /**
 * 注意: 这里因为用到了这个插件,所以有可能需要让这个插件内部方法在加载完成后才能正常使用
 * 也就是说,它还有以一些准备工作,例如判断方法,连接通讯等等
 * 如果直接用会报错的话,或者崩溃等其他问题,所以就可以在这里延迟再执行打印操作
 * setTimeout(()=> {
 * this.$doPrint(data)
 * })
 * */

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
jquery多选项卡效果实例代码(附效果图)
Mar 23 Javascript
escape函数解决js中ajax传递中文出现乱码问题
Oct 30 Javascript
简介JavaScript中Math.cos()余弦方法的使用
Jun 15 Javascript
jQuery实现的仿百度分页足迹效果代码
Oct 30 Javascript
jQuery实现右下角可缩放大小的层完整实例
Jun 20 Javascript
简单实现js菜单栏切换效果
Mar 04 Javascript
利用Javascript获取选择文本所在的句子详解
Dec 03 Javascript
vue项目中使用百度地图的方法
Jun 08 Javascript
js实现图片局部放大效果详解
Mar 18 Javascript
Vue 无限滚动加载指令实现方法
May 28 Javascript
JS实现图片切换特效
Dec 23 Javascript
js实现小星星游戏
Mar 23 Javascript
Echarts实现单条折线可拖拽效果
Dec 19 #Javascript
Webpack设置环境变量的一些误区详解
Dec 19 #Javascript
Echarts实现多条折线可拖拽效果
Dec 19 #Javascript
js判断一个对象是数组(函数)的方法实例
Dec 19 #Javascript
利用JS如何获取form表单数据
Dec 19 #Javascript
在Vue项目中使用Typescript的实现
Dec 19 #Javascript
JS数据类型STRING使用实例解析
Dec 18 #Javascript
You might like
php实现信用卡校验位算法THE LUHN MOD-10示例
2014/05/07 PHP
php中__destruct与register_shutdown_function执行的先后顺序问题
2014/10/17 PHP
WordPress中对访客评论功能的一些优化方法
2015/11/24 PHP
实例讲解PHP设计模式编程中的简单工厂模式
2016/02/29 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
24款非常有用的 jQuery 插件分享
2011/04/06 Javascript
Javascript中判断对象是否为空
2015/06/10 Javascript
Angularjs中使用Filters详解
2016/03/11 Javascript
基于javascript实现全屏漂浮广告
2016/03/31 Javascript
html+javascript+bootstrap实现层级多选框全层全选和多选功能
2017/03/09 Javascript
angularjs定时任务的设置与清除示例
2017/06/02 Javascript
jQuery复合事件结合toggle()方法的用法示例
2017/06/10 jQuery
详谈js中标准for循环与foreach(for in)的区别
2017/11/02 Javascript
node.js基于fs模块对系统文件及目录进行读写操作的方法详解
2017/11/10 Javascript
使用Angular-CLI构建NPM包的方法
2018/09/07 Javascript
vue.js循环radio的实例
2019/11/07 Javascript
jquery实现上传图片功能
2020/06/29 jQuery
python根据时间生成mongodb的ObjectId的方法
2015/03/13 Python
用Python实现换行符转换的脚本的教程
2015/04/16 Python
解决pandas中读取中文名称的csv文件报错的问题
2018/07/04 Python
Python中的相关分析correlation analysis的实现
2019/08/29 Python
python数据处理之如何选取csv文件中某几行的数据
2019/09/02 Python
django ajax发送post请求的两种方法
2020/01/05 Python
Python常用数字处理基本操作汇总
2020/09/10 Python
巴西备受欢迎的服装和生活方式品牌:FARM Rio
2020/02/04 全球购物
用C#语言写出在本地创建一个UDP接收端口的具体过程
2016/02/22 面试题
销售副总经理岗位职责
2013/12/11 职场文书
法人授权委托书公证范本
2014/09/14 职场文书
2014年公司工作总结
2014/11/22 职场文书
堂吉诃德读书笔记
2015/06/30 职场文书
导游带团欢迎词
2015/09/30 职场文书
送给教师们,到底该如何写好教学反思?
2019/07/02 职场文书
go语言-在mac下brew升级golang
2021/04/25 Golang
MySQL 分页查询的优化技巧
2021/05/12 MySQL
Spring中bean的生命周期之getSingleton方法
2021/06/30 Java/Android
深入理解pytorch库的dockerfile
2022/06/10 Python