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 相关文章推荐
浅析Cookie中的Path与domain
Dec 18 Javascript
解决jquery操作checkbox火狐下第二次无法勾选问题
Feb 10 Javascript
实例讲解避免javascript冲突的方法
Jan 03 Javascript
学习JavaScript设计模式之迭代器模式
Jan 19 Javascript
JS中将多个逗号替换为一个逗号的实现代码
Jun 23 Javascript
鼠标拖动改变DIV等网页元素的大小的实现方法
Jul 06 Javascript
详解jQuery中的isPlainObject()使用方法
Feb 27 jQuery
在 Linux/Unix 中不重启 Vim 而重新加载 .vimrc 文件的流程
Mar 21 Javascript
在vue中使用G2图表的示例代码
Mar 19 Javascript
vue实现几秒后跳转新页面代码
Sep 09 Javascript
Vue+Element-U实现分页显示效果
Nov 15 Javascript
JavaScript十大取整方法实例教程
Dec 03 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 Smarty初体验二 获取配置信息
2011/08/08 PHP
简单的方法让你的后台登录更加安全(php中加session验证)
2012/08/22 PHP
关于Zend Studio 配色方案插件的介绍
2013/06/24 PHP
thinkphp中多表查询中防止数据重复的sql语句(必看)
2016/09/22 PHP
php变量与数组相互转换的方法(extract与compact)
2016/12/02 PHP
JavaScript静态的动态
2006/09/18 Javascript
JS 判断undefined的实现代码
2009/11/26 Javascript
jquery图片延迟加载 前端开发技能必备系列
2012/06/18 Javascript
使用Math.floor与Math.random取随机整数的方法详解
2013/05/07 Javascript
js动态创建上传表单通过iframe模拟Ajax实现无刷新
2014/02/20 Javascript
jQuery中:lt选择器用法实例
2014/12/29 Javascript
JS使用正则表达式找出最长连续子串长度
2017/10/26 Javascript
vue-cli3.0 环境变量与模式配置方法
2018/11/08 Javascript
VUE.CLI4.0配置多页面入口的实现
2019/11/25 Javascript
《javascript设计模式》学习笔记七:Javascript面向对象程序设计组合模式详解
2020/04/08 Javascript
JavaScript实现通讯录功能
2020/12/27 Javascript
详解python3中socket套接字的编码问题解决
2017/07/01 Python
python字典DICT类型合并详解
2017/08/17 Python
Python异常处理操作实例详解
2018/05/10 Python
Python正则匹配判断手机号是否合法的方法
2020/12/09 Python
Python中那些 Pythonic的写法详解
2019/07/02 Python
django中账号密码验证登陆功能的实现方法
2019/07/15 Python
python ubplot使用方法解析
2020/01/10 Python
Pretty Green美国:英式摇滚服饰风格代表品牌之一
2019/01/23 全球购物
汉语专业应届生求职信
2013/10/01 职场文书
优秀部门获奖感言
2014/02/14 职场文书
《莫泊桑拜师》教学反思
2014/04/23 职场文书
离婚协议书范本(2014版)
2014/09/28 职场文书
优秀教师推荐材料
2014/12/16 职场文书
八一建军节主持词
2015/07/01 职场文书
运动会800米赞词
2015/07/22 职场文书
运动会广播稿50字
2015/08/19 职场文书
用position:sticky完美解决小程序吸顶问题的实现方法
2021/04/24 HTML / CSS
Python+tkinter实现高清图片保存
2022/03/13 Python
详解Vue3使用axios的配置教程
2022/04/29 Vue.js
css如何把元素固定在容器底部的四种方式
2022/06/16 HTML / CSS