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 相关文章推荐
禁止js文件缓存的代码
Apr 09 Javascript
深入理解JavaScript系列(16) 闭包(Closures)
Apr 12 Javascript
jquery中文乱码的多种解决方法
Jun 21 Javascript
详解js跨域原理以及2种解决方案
Dec 09 Javascript
详解javascript高级定时器
Dec 31 Javascript
JSONP原理及简单实现
Jun 08 Javascript
10道典型的JavaScript面试题
Mar 22 Javascript
vue自定义底部导航栏Tabbar的实现代码
Sep 03 Javascript
vue 实现单选框设置默认选中值
Nov 07 Javascript
Vue简单实现原理详解
May 07 Javascript
js实现简单的点名器随机色实例代码
Sep 20 Javascript
SSM VUE Axios详解
Oct 05 Vue.js
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
MOTOROLA 摩托罗拉 MODEL 66-XI五灯中波收音机
2021/03/02 无线电
PHP和Mysqlweb应用开发核心技术-第1部分 Php基础-2 php语言介绍
2011/07/03 PHP
PHP管理依赖(dependency)关系工具 Composer的自动加载(autoload)
2014/08/18 PHP
详解PHP中的Traits
2015/07/29 PHP
yii2实现根据时间搜索的方法
2016/05/25 PHP
thinkPHP多表查询及分页功能实现方法示例
2017/07/03 PHP
jquery focus(fn),blur(fn)方法实例代码
2011/12/16 Javascript
常用DOM整理
2015/06/16 Javascript
JavaScript中Date对象的常用方法示例
2015/10/24 Javascript
学习javascript文件加载优化
2016/02/19 Javascript
node.js插件nodeclipse安装图文教程
2020/10/19 Javascript
Javascript for in的缺陷总结
2017/02/03 Javascript
JavaScript之promise_动力节点Java学院整理
2017/07/03 Javascript
浅谈Vue SSR 的 Cookies 问题
2017/11/20 Javascript
karma+webpack搭建vue单元测试环境的方法示例
2018/05/24 Javascript
使用weixin-java-tools完成微信授权登录、微信支付的示例
2018/09/26 Javascript
微信小程序实现圆形进度条动画
2020/11/18 Javascript
[01:11]steam端dota2实名认证操作流程视频
2021/03/11 DOTA
Python的__builtin__模块中的一些要点知识
2015/05/02 Python
Python3实现并发检验代理池地址的方法
2016/09/18 Python
你应该知道的python列表去重方法
2017/01/17 Python
numpy中矩阵合并的实例
2018/06/15 Python
Python 使用Numpy对矩阵进行转置的方法
2019/01/28 Python
pyhanlp安装介绍和简单应用
2019/02/22 Python
wxpython+pymysql实现用户登陆功能
2019/11/19 Python
python中return的返回和执行实例
2019/12/24 Python
用python进行视频剪辑
2020/11/02 Python
移动端rem布局的两种实现方法
2018/01/03 HTML / CSS
html2 canvas生成清晰的图片实现打印功能
2019/09/23 HTML / CSS
Sperry官网:帆船鞋创始品牌
2016/09/07 全球购物
关于打架的检讨书
2014/01/17 职场文书
网上商城创业计划书范文
2014/01/31 职场文书
室内趣味活动方案
2014/08/24 职场文书
保安2014年终工作总结
2014/12/06 职场文书
教师工作证明范本
2015/06/12 职场文书
幼儿园教师读书笔记
2015/06/29 职场文书