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 相关文章推荐
javascript 写类方式之九
Jul 05 Javascript
JavaScript中的this实例分析
Apr 28 Javascript
Javascript 遮罩层和加载效果代码
Aug 01 Javascript
jQuery中outerHeight()方法用法实例
Jan 19 Javascript
AngularJS控制器之间的通信方式详解
Nov 03 Javascript
谈谈jQuery之Deferred源码剖析
Dec 19 Javascript
基于bootstrap的文件上传控件bootstrap fileinput
Dec 23 Javascript
JS实现页面中所有img对象添加onclick事件及新窗口查看图片的方法
Dec 27 Javascript
JS图片轮播与索引变色功能实例详解
Jul 06 Javascript
vue实现简单loading进度条
Jun 06 Javascript
详解写好JS条件语句的5条守则
Feb 28 Javascript
三步实现ionic3点击退出app程序
Sep 17 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实现返回JSON和XML的类分享
2015/01/28 PHP
浅谈PHP中的
2016/04/23 PHP
PHP基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
2019/05/29 PHP
JavaScript在IE中“意外地调用了方法或属性访问”
2008/11/19 Javascript
Ext.FormPanel 提交和 Ext.Ajax.request 异步提交函数的区别
2009/11/12 Javascript
Node.js中使用Buffer编码、解码二进制数据详解
2014/08/16 Javascript
js实现touch移动触屏滑动事件
2015/04/17 Javascript
JavaScript中判断数据类型的方法总结
2016/05/24 Javascript
封装的dialog插件 基于bootstrap模态对话框的简单扩展
2016/08/10 Javascript
微信小程序 五星评价功能的实现
2017/03/09 Javascript
Vue2.0基于vue-cli+webpack同级组件之间的通信教程(推荐)
2017/09/14 Javascript
Router解决跨模块下的页面跳转示例
2018/01/11 Javascript
详解vue开发中调用微信jssdk的问题
2019/04/16 Javascript
微信小程序动态设置图片大小的方法
2019/11/21 Javascript
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
2020/09/29 Javascript
使用python编写批量卸载手机中安装的android应用脚本
2014/07/21 Python
Python 2.x如何设置命令执行的超时时间实例
2017/10/19 Python
Python使用import导入本地脚本及导入模块的技巧总结
2019/08/07 Python
Tensorflow轻松实现XOR运算的方式
2020/02/03 Python
python3实现raspberry pi(树莓派)4驱小车控制程序
2020/02/12 Python
使用Keras实现Tensor的相乘和相加代码
2020/06/18 Python
html标签之Object和EMBED标签详解
2013/07/04 HTML / CSS
中国最大的团购网站:聚划算
2016/09/21 全球购物
德国古洛迷亚百货官网:GALERIA Kaufhof
2017/06/20 全球购物
英国领先的豪华时尚家居网上商店:Amara
2019/08/12 全球购物
如何实现jdbc性能优化
2012/07/30 面试题
土木建筑学生自我评价
2014/01/14 职场文书
医药个人求职信范文
2014/01/29 职场文书
竞选学生会主席演讲稿
2014/04/24 职场文书
羽毛球社团活动总结
2014/06/27 职场文书
欢度春节标语
2014/07/01 职场文书
小学生安全责任书
2014/07/25 职场文书
思品教学工作总结
2015/08/10 职场文书
六年级上册《闻官军收河南河北》的教学设计
2019/11/15 职场文书