前端使用lodop插件进行打印设置
先前梳理了后台打印导出参考:https://www.cnblogs.com/yyk1226/p/9856032.html,但是没有显示出来打印预览页面。
本章使用Lodop插件进行打印设置,实现打印机设置功能。
效果展示:
点击打印之后,弹出【打印预览】效果,一旦连接到打印机,即可打印。
具体实现:
1.下载相关插件
百度网盘下载地址:链接:https://pan.baidu.com/s/1WZsi6TPGjFj7PbAGW4ertg 密码:s375
解压之后:
2.安装lodop
方式一:双击对应.exe可执行应用程序进行安装;
方式二:接下来讲到的,在jsp页面上提醒选择安装,因为有时候开发的东西是让客户使用的,不可能每次都得跟客户通知要安装哪些插件或者应用程序。
3.将解压后的文件放置在项目中,如图。
4.修改LodopFuncs.js中相关路径。
5.修改LodopFuncs.js中注册信息的账号与密码。
6.设计将打印的表格模板。(设计模板学习可以参考网上教程也可以自己摸索,上手很快)
lodop设计url地址:http://test.kerunsoft.cn/lodop_print/
7.设计完选择【生成程序代码】,进行复制。
8.将代码块粘贴到LodopPrint.js文件中,如下所示。
function PrintEntryOrder(data) {
CreateEntryPrintPage(data);
} function CreateEntryPrintPage(data) {
var LODOP = getLodop();
var rowMoveDown = ;
var lineMoveDown = ;
var rowHeight = ;
var lineHeight = ;
var x = ;
var y = ;
var list = ; //纸张大小
LODOP.PRINT_INITA(,,,,""); //单名称
LODOP.ADD_PRINT_TEXT(,,,,"测试一张入库单");
LODOP.SET_PRINT_STYLEA(,"FontSize",);
LODOP.SET_PRINT_STYLEA(,"Alignment",);
LODOP.SET_PRINT_STYLEA(,"Bold",); //商户标签
LODOP.ADD_PRINT_TEXT(,,,,"入库客户:");
LODOP.SET_PRINT_STYLEA(,"FontSize",);
LODOP.SET_PRINT_STYLEA(,"Alignment",);
//--动态值
LODOP.ADD_PRINT_TEXT(,,,,data.merchantName);
LODOP.SET_PRINT_STYLEA(,"FontSize",);
LODOP.SET_PRINT_STYLEA(,"Alignment",); LODOP.ADD_PRINT_TEXT(,,,,"入库日期:");
LODOP.SET_PRINT_STYLEA(,"FontSize",);
LODOP.SET_PRINT_STYLEA(,"Alignment",);
LODOP.ADD_PRINT_TEXT(,,,,data.entryDate);
LODOP.SET_PRINT_STYLEA(,"FontSize",);
LODOP.SET_PRINT_STYLEA(,"Alignment",); LODOP.ADD_PRINT_TEXT(,,,,"车牌号:");
LODOP.SET_PRINT_STYLEA(,"FontSize",);
LODOP.SET_PRINT_STYLEA(,"Alignment",);
LODOP.ADD_PRINT_TEXT(,,,,data.carNumber);
LODOP.SET_PRINT_STYLEA(,"FontSize",);
LODOP.SET_PRINT_STYLEA(,"Alignment",); LODOP.ADD_PRINT_TEXT(,,,,"卸车温度:");
LODOP.SET_PRINT_STYLEA(,"FontSize",);
LODOP.SET_PRINT_STYLEA(,"Alignment",);
LODOP.ADD_PRINT_TEXT(,,,,data.carTemperature);
LODOP.SET_PRINT_STYLEA(,"FontSize",);
LODOP.SET_PRINT_STYLEA(,"Alignment",); LODOP.ADD_PRINT_TEXT(,,,,"始发地:");
LODOP.SET_PRINT_STYLEA(,"FontSize",);
LODOP.SET_PRINT_STYLEA(,"Alignment",);
LODOP.ADD_PRINT_TEXT(,,,,data.bgnLocation);
LODOP.SET_PRINT_STYLEA(,"FontSize",);
LODOP.SET_PRINT_STYLEA(,"Alignment",); LODOP.ADD_PRINT_TEXT(,,,,"目的地:");
LODOP.SET_PRINT_STYLEA(,"FontSize",);
LODOP.SET_PRINT_STYLEA(,"Alignment",);
LODOP.ADD_PRINT_TEXT(,,,,data.endLocation);
LODOP.SET_PRINT_STYLEA(,"FontSize",);
LODOP.SET_PRINT_STYLEA(,"Alignment",); //产品表头
LODOP.ADD_PRINT_TEXT(,,,,"序号");
LODOP.SET_PRINT_STYLEA(,"FontSize",);
LODOP.SET_PRINT_STYLEA(,"Alignment",);
LODOP.SET_PRINT_STYLEA(,"Bold",);
LODOP.ADD_PRINT_TEXT(,,,,"产品名称");
LODOP.SET_PRINT_STYLEA(,"FontSize",);
LODOP.SET_PRINT_STYLEA(,"Alignment",);
LODOP.SET_PRINT_STYLEA(,"Bold",);
LODOP.ADD_PRINT_TEXT(,,,,"产品规格");
LODOP.SET_PRINT_STYLEA(,"FontSize",);
LODOP.SET_PRINT_STYLEA(,"Alignment",);
LODOP.SET_PRINT_STYLEA(,"Bold",);
LODOP.ADD_PRINT_TEXT(,,,,"件数");
LODOP.SET_PRINT_STYLEA(,"FontSize",);
LODOP.SET_PRINT_STYLEA(,"Alignment",);
LODOP.SET_PRINT_STYLEA(,"Bold",);
LODOP.ADD_PRINT_TEXT(,,,,"总重量");
LODOP.SET_PRINT_STYLEA(,"FontSize",);
LODOP.SET_PRINT_STYLEA(,"Alignment",);
LODOP.SET_PRINT_STYLEA(,"Bold",);
LODOP.ADD_PRINT_TEXT(,,,,"入库货位号");
LODOP.SET_PRINT_STYLEA(,"FontSize",);
LODOP.SET_PRINT_STYLEA(,"Alignment",);
LODOP.SET_PRINT_STYLEA(,"Bold",);
LODOP.ADD_PRINT_TEXT(,,,,"备注");
LODOP.SET_PRINT_STYLEA(,"FontSize",);
LODOP.SET_PRINT_STYLEA(,"Alignment",);
LODOP.SET_PRINT_STYLEA(,"Bold",); //产品值 --> 横向
if (data.esiList.length > ) {
list = data.esiList.length;
for (var i = ; i < list; i++) {
var item = data.esiList[i];
LODOP.ADD_PRINT_TEXT(x+rowMoveDown+(rowHeight * i),,,,(i + ));
LODOP.SET_PRINT_STYLEA(,"FontSize",);
LODOP.SET_PRINT_STYLEA(,"Alignment",);
LODOP.ADD_PRINT_TEXT(x+rowMoveDown+(rowHeight * i),,,,item.name);
LODOP.SET_PRINT_STYLEA(,"FontSize",);
LODOP.SET_PRINT_STYLEA(,"Alignment",);
LODOP.ADD_PRINT_TEXT(x+rowMoveDown+(rowHeight * i),,,,item.specs);
LODOP.SET_PRINT_STYLEA(,"FontSize",);
LODOP.SET_PRINT_STYLEA(,"Alignment",);
LODOP.ADD_PRINT_TEXT(x+rowMoveDown+(rowHeight * i),,,,item.goodsCount);
LODOP.SET_PRINT_STYLEA(,"FontSize",);
LODOP.SET_PRINT_STYLEA(,"Alignment",);
LODOP.ADD_PRINT_TEXT(x+rowMoveDown+(rowHeight * i),,,,item.goodsWeight);
LODOP.SET_PRINT_STYLEA(,"FontSize",);
LODOP.SET_PRINT_STYLEA(,"Alignment",);
LODOP.ADD_PRINT_TEXT(x+rowMoveDown+(rowHeight * i),,,,item.stockCode);
LODOP.SET_PRINT_STYLEA(,"FontSize",);
LODOP.SET_PRINT_STYLEA(,"Alignment",);
LODOP.ADD_PRINT_TEXT(x+rowMoveDown+(rowHeight * i),,,,item.remark);
LODOP.SET_PRINT_STYLEA(,"FontSize",);
LODOP.SET_PRINT_STYLEA(,"Alignment",); LODOP.ADD_PRINT_RECT(x+lineMoveDown+(lineHeight * i),,,,,);
LODOP.ADD_PRINT_RECT(x+lineMoveDown+(lineHeight * i),,,,,);
LODOP.ADD_PRINT_RECT(x+lineMoveDown+(lineHeight * i),,,,,);
LODOP.ADD_PRINT_RECT(x+lineMoveDown+(lineHeight * i),,,,,);
LODOP.ADD_PRINT_RECT(x+lineMoveDown+(lineHeight * i),,,,,);
LODOP.ADD_PRINT_RECT(x+lineMoveDown+(lineHeight * i),,,,,);
LODOP.ADD_PRINT_RECT(x+lineMoveDown+(lineHeight * i),,,,,);
} //合计行,判断是否显示
LODOP.ADD_PRINT_TEXT(x+rowMoveDown+(rowHeight * list),,,,"合计:");
LODOP.SET_PRINT_STYLEA(,"FontSize",);
LODOP.SET_PRINT_STYLEA(,"Alignment",);
LODOP.ADD_PRINT_TEXT(x+rowMoveDown+(rowHeight * list),,,,"");
LODOP.SET_PRINT_STYLEA(,"FontSize",);
LODOP.SET_PRINT_STYLEA(,"Alignment",);
LODOP.ADD_PRINT_TEXT(x+rowMoveDown+(rowHeight * list),,,,"");
LODOP.SET_PRINT_STYLEA(,"FontSize",);
LODOP.SET_PRINT_STYLEA(,"Alignment",); LODOP.ADD_PRINT_RECT(x+lineMoveDown+(lineHeight * list),,,,,);
LODOP.ADD_PRINT_RECT(x+lineMoveDown+(lineHeight * list),,,,,);
LODOP.ADD_PRINT_RECT(x+lineMoveDown+(lineHeight * list),,,,,);
LODOP.ADD_PRINT_RECT(x+lineMoveDown+(lineHeight * list),,,,,);
LODOP.ADD_PRINT_RECT(x+lineMoveDown+(lineHeight * list),,,,,); list = list + ;
} LODOP.ADD_PRINT_TEXT(x+rowMoveDown+(rowHeight * list),,,,"入库确认签字:");
LODOP.SET_PRINT_STYLEA(,"FontSize",);
LODOP.SET_PRINT_STYLEA(,"Alignment",); //外框
LODOP.ADD_PRINT_RECT(,,,,,);
LODOP.ADD_PRINT_RECT(,,,,,); LODOP.ADD_PRINT_RECT(,,,,,); LODOP.ADD_PRINT_RECT(,,,,,);
LODOP.ADD_PRINT_RECT(,,,,,);
LODOP.ADD_PRINT_RECT(,,,,,);
LODOP.ADD_PRINT_RECT(,,,,,);
LODOP.ADD_PRINT_RECT(,,,,,); LODOP.ADD_PRINT_RECT(,,,,,);
LODOP.ADD_PRINT_RECT(,,,,,);
LODOP.ADD_PRINT_RECT(,,,,,);
LODOP.ADD_PRINT_RECT(,,,,,); LODOP.ADD_PRINT_RECT(,,,,,);
LODOP.ADD_PRINT_RECT(,,,,,);
LODOP.ADD_PRINT_RECT(,,,,,);
LODOP.ADD_PRINT_RECT(,,,,,); LODOP.ADD_PRINT_RECT(,,,,,);
LODOP.ADD_PRINT_RECT(,,,,,);
LODOP.ADD_PRINT_RECT(,,,,,);
LODOP.ADD_PRINT_RECT(,,,,,);
LODOP.ADD_PRINT_RECT(,,,,,);
LODOP.ADD_PRINT_RECT(,,,,,);
LODOP.ADD_PRINT_RECT(,,,,,); LODOP.PRINT_DESIGN();
//LODOP.PREVIEW();
//LODOP.PRINT();
};
9.在jsp页面调用该打印方法,并传输动态值。
点击按钮:
<input type="button" class="layui-btn" onclick="javascript:print();" value="打印" />
引入js:
<script type="text/javascript" src="js/lodop/LodopFuncs.js"></script>
<script type="text/javascript" src="js/lodop/LodopPrint.js"></script>
执行方法:
function print() {
var data = $("#data").val();//获取后台传输过来的data值(此处不罗列后台代码)
if (data) {
PrintEntryOrder(JSON.parse(data));
}
}
打印设置完成!接下来打印试试!
前端使用lodop插件进行打印设置的更多相关文章
- 前端使用lodop如何获取打印状态
前面已经说过,如何简单使用lodop了,今天说一下如何获得lodop的打印状态? 在教程里面找了半天,摸索出来了一套. template: <!-- 实验代码 --> <div> ...
- LODOP插件的IE浏览器的安全设置
LodopFuncs.js里的判断默认是混合部署,IE等支持np插件的浏览器会走lodop插件方式,但是IE的安全设置可能会阻挡lodop插件,可点击允许或修改IE浏览器的安全设置让Lodop每次都能 ...
- LODOP不同电脑打印效果不同排查
1.位置不同,偏移问题.详细的相关偏移问题的博文:LODOP不同打印机出现偏移问题 2.样式问题. 本机浏览器解析样式不同 ,相关超文本样式博文:Lodop打印控件传入css样式.看是否传入正确样式 ...
- openerp模块收藏 基于Lodop的报表打印模块(转载)
基于Lodop的报表打印模块 原文:http://shine-it.net/index.php/topic,7397.0.html 前段时间写了个小模块,来解决OE中报表打印不方便的问题.借鉴了 @b ...
- WordPress 前端投稿/编辑插件 DJD Site Post(支持游客和已注册用户)
转自:http://www.wpdaxue.com/front-end-publishing.html 说到前端用户投稿,倡萌之前推荐过3个不错的插件: WordPress匿名投稿插件:DX-Cont ...
- CDN公共库、前端开发常用插件一览表(VendorPluginLib)
=======================================================================================前端CDN公共库===== ...
- JS前端图形化插件之利器Gojs组件(php中文网)
JS前端图形化插件之利器Gojs组件(php中文网) 一.总结 一句话总结:php中文网我可以好好走一波 二.JS前端图形化插件之利器Gojs组件 参考: JS前端图形化插件之利器Gojs组件-js教 ...
- ArcGIS地图打印设置
1.需求:客户自己开发的Engine程序,调用的是LayoutControl,需要连接大型绘图仪进行出图. 业务流程是先框选要打印的地图范围,该范围是自定义大小,框选完成之后进行预览,然后选择打印输出 ...
- [BS-06] 设置release发布时NSLog不打印设置
设置release发布时NSLog不打印设置 前提:在XCode做开发调试时往往需要打印一些调试信息做debug用,大家知道当打印信息的地方多了之后在模拟器上跑可能不会有什么问题,因为模拟器用的是电脑 ...
随机推荐
- 基于wanAndroid-项目实战
# QzsWanAndroid - [基于 wanandroid.com 开发的 MVP + Retrofit2 + RxJava2 +okhttp3 开发的 Android APP](https:/ ...
- 转载-springboot缓存开发
转载:https://www.cnblogs.com/wyq178/p/9840985.html 前言:缓存在开发中是一个必不可少的优化点,近期在公司的项目重构中,关于缓存优化了很多点,比如在加载 ...
- hdu-6638 Snowy Smile
题目链接 Snowy Smile Problem Description There are n pirate chests buried in Byteland, labeled by 1,2,-, ...
- POJ 1002 487-3279 map
487-3279 Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 287874 Accepted: 51669 Descr ...
- Gym 101470 题解
A:Banks 代码: #include<bits/stdc++.h> using namespace std; #define Fopen freopen("_in.txt&q ...
- HDU2276 Kiki & Little Kiki 2 矩阵快速幂
Kiki & Little Kiki 2 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java ...
- Investigating Div-Sum Property UVA - 11361
An integer is divisible by 3 if the sum of its digits is also divisible by 3. For example, 3702 is d ...
- uiautomator2 实现App九宫格解锁
App九宫格解锁 之前在testerhome社区看见codeskyblue大佬写过一种方法,但是这种办法存在一个弊端,那就是多个点的坐标是写死的,也就是说要是换了部手机,九宫格解锁就行不通了,于是就想 ...
- [DP]最长递增子序列
#include <iostream> #include <limits.h> #include <vector> #include <algorithm&g ...
- Java 调式、热部署、JVM 背后的支持者 Java Agent
我们平时写 Java Agent 的机会确实不多,也可以说几乎用不着.但其实我们一直在用它,而且接触的机会非常多.下面这些技术都使用了 Java Agent 技术,看一下你就知道为什么了. -各个 J ...