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 相关文章推荐
jQuery使用手册之二 DOM操作
Mar 24 Javascript
FormValidate 表单验证功能代码更新并提供下载
Aug 23 Javascript
ymPrompt的doHandler方法来实现获取子窗口返回值的方法
Jun 25 Javascript
添加JavaScript重载函数的辅助方法2
Jul 04 Javascript
将光标定位于输入框最右侧实现代码
Dec 04 Javascript
javascript修改图片src的方法
Jan 27 Javascript
js 将input框中的输入自动转化成半角大写(税号输入框)
Feb 16 Javascript
jquery实现放大镜简洁代码(推荐)
Jun 08 jQuery
详解webpack运行Babel教程
Jun 13 Javascript
vue获取时间戳转换为日期格式代码实例
Apr 17 Javascript
jQuery模拟html下拉多选框的原生实现方法示例
May 30 jQuery
前端开发基础javaScript的六大作用
Aug 06 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
Linux下ZendOptimizer的安装与配置方法
2007/04/12 PHP
php上传文件,创建递归目录的实例代码
2013/10/18 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
2016/05/11 PHP
PHP中让json_encode不自动转义斜杠“/”的方法
2017/02/28 PHP
php实现遍历文件夹的方法汇总
2017/03/02 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
PHP PDOStatement::fetch讲解
2019/01/31 PHP
Laravel中9个不经常用的小技巧汇总
2019/04/16 PHP
Laravel 前端资源配置教程
2019/10/18 PHP
IE和Firefox下event事件杂谈
2009/12/18 Javascript
点击进行复制的JS代码实例
2013/08/23 Javascript
使用jquery修改表单的提交地址基本思路
2014/06/04 Javascript
indexOf 和 lastIndexOf 使用示例介绍
2014/09/02 Javascript
js数据类型检测总结
2018/08/05 Javascript
vue项目中常见问题及解决方案(推荐)
2019/10/21 Javascript
javascript中的相等操作符(==与===区别)
2019/12/21 Javascript
Vue-cli assets SubDirectory及PublicPath区别详解
2020/08/18 Javascript
[05:09]2016国际邀请赛中国区预选赛淘汰赛首日精彩回顾
2016/06/29 DOTA
python操作MySQL数据库具体方法
2013/10/28 Python
python中map()与zip()操作方法
2016/02/27 Python
10 行Python 代码实现 AI 目标检测技术【推荐】
2019/06/14 Python
django重新生成数据库中的某张表方法
2019/08/28 Python
Django框架创建项目的方法入门教程
2019/11/04 Python
Python 复平面绘图实例
2019/11/21 Python
Pytorch学习之torch用法----比较操作(Comparison Ops)
2020/06/28 Python
详解CSS3中使用gradient实现渐变效果的方法
2015/08/18 HTML / CSS
AE美国鹰美国官方网站:American Eagle Outfitters
2016/08/22 全球购物
阿联酋彩妆品牌:OUD MILANO
2019/10/06 全球购物
意大利包包和行李箱销售网站:Bagaglio.it
2021/03/02 全球购物
应届毕业生就业自荐信
2013/10/26 职场文书
乡镇爱国卫生月活动总结
2014/06/25 职场文书
我心目中的好老师活动方案
2014/08/19 职场文书
班级光棍节联谊会策划书
2014/10/10 职场文书
平遥古城导游词
2015/02/03 职场文书
增值税发票丢失证明
2015/06/19 职场文书
mysql中关键词exists的用法实例详解
2022/06/10 MySQL