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 相关文章推荐
FormValidate 表单验证功能代码更新并提供下载
Aug 23 Javascript
从阶乘函数对比Javascript和C#的异同
May 31 Javascript
js验证整数加保留小数点的简单实例
Dec 02 Javascript
jquery实现文本框数量加减功能的例子分享
May 10 Javascript
javascript的document.referrer浏览器支持、失效情况总结
Jul 18 Javascript
Javascript的无new构建实例详解
May 15 Javascript
老生常谈JavaScript 正则表达式语法
Aug 20 Javascript
Bootstrap组合上、下拉框简单实现代码
Mar 06 Javascript
微信小程序开发之麦克风动画 帧动画 放大 淡出
Apr 18 Javascript
给localStorage设置一个过期时间的方法分享
Nov 06 Javascript
JQuery插件tablesorter表格排序实现过程解析
May 28 jQuery
JavaScript函数柯里化
Nov 07 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获取系统变量方法小结
2015/05/29 PHP
jQuery对表单元素的取值和赋值操作代码
2011/05/19 Javascript
jQuery .tmpl() 用法示例介绍
2014/08/21 Javascript
jquery手风琴特效插件
2015/02/04 Javascript
NodeJS Web应用监听sock文件实例
2015/02/18 NodeJs
JS实现的数组全排列输出算法
2015/03/19 Javascript
jquery解析json格式数据的方法(对象、字符串)
2015/11/24 Javascript
jQuery实现图片预加载效果
2015/11/27 Javascript
原生JS实现图片轮播与淡入效果的简单实例
2016/08/21 Javascript
Javascript之面向对象--方法
2016/12/02 Javascript
JS实现对json对象排序并删除id相同项功能示例
2018/04/18 Javascript
浅谈KOA2 Restful方式路由初探
2019/03/14 Javascript
vue element中axios下载文件(后端Python)
2019/05/10 Javascript
微信小程序实现图片翻转效果的实例代码
2019/09/20 Javascript
vue仿ios列表左划删除
2019/09/26 Javascript
Vue 图片压缩并上传至服务器功能
2020/01/15 Javascript
Python基于正则表达式实现文件内容替换的方法
2017/08/30 Python
widows下安装pycurl并利用pycurl请求https地址的方法
2018/10/15 Python
python制作图片缩略图
2019/04/30 Python
40行Python代码实现天气预报和每日鸡汤推送功能
2020/02/27 Python
使用Python实现批量ping操作方法
2020/05/06 Python
俄罗斯玩具、儿童用品、儿童服装和鞋子网上商店:MyToys.ru
2019/10/14 全球购物
如何强制垃圾回收
2015/10/06 面试题
人事行政主管岗位职责
2013/12/22 职场文书
工程专业毕业生自荐信范文
2013/12/25 职场文书
小学教师听课制度
2014/02/01 职场文书
高中课前三分钟演讲稿
2014/08/18 职场文书
公司党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
防汛通知
2015/04/25 职场文书
2016国庆节活动宣传语
2015/11/25 职场文书
《揠苗助长》教学反思
2016/02/20 职场文书
个人售房合同协议书
2016/03/21 职场文书
七年级之开学家长寄语35句
2019/09/05 职场文书
Golang之sync.Pool使用详解
2021/05/06 Golang
Go语言实现Base64、Base58编码与解码
2021/07/26 Golang
golang语言指针操作
2022/04/14 Golang