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类定义原型方法的两种实现的区别评论很多
Sep 12 Javascript
js页面跳转常用的几种方式
Nov 25 Javascript
JavaScript中的稀疏数组与密集数组[译]
Sep 17 Javascript
JQuery中DOM加载与事件执行实例分析
Jun 13 Javascript
HTML5 canvas 9绘制图片实例详解
Sep 06 Javascript
浅谈js继承的实现及公有、私有、静态方法的书写
Oct 28 Javascript
JavaScript实现清空(重置)文件类型INPUT元素值的方法
Nov 17 Javascript
Restify中接入Socket.io报Error:Can’t set headers的错误解决
Mar 28 Javascript
jquery实现图片上传前本地预览
Apr 28 jQuery
微信小程序使用swiper组件实现类3D轮播图
Aug 29 Javascript
JS实现的tab页切换效果完整示例
Dec 18 Javascript
微信小程序12行js代码自己写个滑块功能(推荐)
Jul 15 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部分常见问题总结
2006/10/09 PHP
PHP判断图片格式的七种方法小结
2013/06/03 PHP
zend framework文件上传功能实例代码
2013/12/25 PHP
WordPress中给媒体文件添加分类和标签的PHP功能实现
2015/12/31 PHP
简单概括PHP的字符串中单引号与双引号的区别
2016/05/07 PHP
中高级PHP程序员应该掌握哪些技术?
2016/09/23 PHP
Vagrant(WSL)+PHPStorm+Xdebu 断点调试环境搭建
2019/12/13 PHP
PHP获取当前时间不准确问题解决方案
2020/08/14 PHP
基于jquery实现状态限定编辑的代码
2012/02/11 Javascript
jQuery实现可以控制图片旋转角度效果(附demo源码下载)
2016/01/27 Javascript
javascript小数精度丢失的完美解决方法
2016/05/31 Javascript
JQuery学习总结【二】
2016/12/01 Javascript
Bootstrap modal 多弹窗之叠加显示不出弹窗问题的解决方案
2017/02/23 Javascript
浅谈vuejs实现数据驱动视图原理
2018/02/23 Javascript
JavaScript实现多态和继承的封装操作示例
2018/08/20 Javascript
微信小程序实现商品属性联动选择
2019/02/15 Javascript
JS实现判断有效的数独算法示例
2019/02/25 Javascript
Vue中对iframe实现keep alive无刷新的方法
2019/07/23 Javascript
基于Vue sessionStorage实现保留搜索框搜索内容
2020/06/01 Javascript
Python的Django框架使用入门指引
2015/04/15 Python
python3使用urllib模块制作网络爬虫
2016/04/08 Python
Python实现的堆排序算法原理与用法实例分析
2017/11/22 Python
python抓取网站的图片并下载到本地的方法
2018/05/22 Python
python实现静态服务器
2019/09/05 Python
Python如何急速下载第三方库详解
2020/11/02 Python
Python中读取文件名中的数字的实例详解
2020/12/25 Python
中国跨境海淘网站:考拉海购
2016/08/01 全球购物
美国流行背包品牌:JanSport(杰斯伯)
2018/03/02 全球购物
台湾最大网路书店:博客来
2018/03/18 全球购物
加拿大时尚潮流大码女装购物网站:Addition Elle
2018/04/02 全球购物
自我鉴定范文200字
2013/10/02 职场文书
电子商务个人职业生涯规划范文
2014/02/12 职场文书
清洁工个人工作总结
2015/03/05 职场文书
拾金不昧通报表扬范文
2015/05/05 职场文书
格林童话读书笔记
2015/06/30 职场文书
《索溪峪的野》教学反思
2016/02/19 职场文书