首页 > 其他分享 >网页调用打印机(Lodop)使用记录

网页调用打印机(Lodop)使用记录

时间:2023-04-07 17:12:29浏览次数:42  
标签:打印机 网页 打印 checkState let Lodop PRINT options LODOP

最近项目中有打印标签的需要,使用Lodop实现。

Lodop

官网地址:https://www.lodop.net/index.html

这是一个收费控件,在打印时会出现试用字符,但是可以通过一定方式避免。

项目中需要打印的机器都是windows,因此安装CLodop即可。

安装之后在web页面上就可以引入对应js:

<!-- 需要安装CLodop并启动服务 -->
<script src="http://localhost:8000/CLodopFuncs.js"></script>

这里给一个例子,其他看官网教程即可。

使用Lodop调用斑马ZEBRA ZD888-203dpi ZPL标签打印机打印80mm*50mm的标签对应的函数:

function printLabelA(dataArray, options) {
    if (!options) {
        options = {}
    }
    if (!options.pageWidth) {
        options.pageWidth = 800
    }
    if (!options.pageHeight) {
        options.pageHeight = 500
    }

    let barcodeTop = 78;
    let barcodeLeft = 90
    let barcodeWidth = 200
    let barcodeHeight = 30

    let textHeight = 20
    let textLeft = barcodeLeft
    let textWidth = barcodeWidth
    let textTop = barcodeTop - textHeight + 2

    const SQUARE = "□";
    const YES = "√";

    LODOP.PRINT_INIT("标签A打印_" + Date.now());// 首先一个初始化语句
    LODOP.SET_PRINT_PAGESIZE(0, options.pageWidth, options.pageHeight, 'labelPaper')// 设定纸张大小

    for (const data of dataArray) {
        let simpleCode = data.simpleCode;
        let barCodeValue = data.barCodeValue;
        let subCode = data.subCode;
        let checkState = data.checkState;

        let state1 = (checkState.charAt(0) === '1') ? YES : SQUARE;
        let state2 = (checkState.charAt(1) === '1') ? YES : SQUARE;
        let state3 = (checkState.charAt(2) === '1') ? YES : SQUARE;
        let state4 = (checkState.charAt(3) === '1') ? YES : SQUARE;

        if (!simpleCode) {
            simpleCode = ""
        }
        if (!barCodeValue) {
            barCodeValue = ""
        }
        if (!subCode) {
            subCode = ""
        }
        if (!checkState) {
            checkState = "0000"
        }

        let printHtml = `
<table width="285" style="border-collapse:collapse;">
	<tbody>
		<tr>
			<td width="100%" height="180">
				<p align="center">
					<font face="宋体" size="5" weight="blod">样 品 标 签</font>
				</p>
				<p align="left" style="margin-top: 30px"><font face="宋体" size="2"> 样品编号:</font></p>
				<p align="left"><font face="宋体" size="2"> 详情编号:${subCode}</font></p>
				<p align="left">
					<span><font face="宋体" size="3"> ${state1}状态A</font></span>
					<span><font face="宋体" size="3"> ${state2}状态B</font></span>
					<span><font face="宋体" size="3"> ${state3}状态C</font></span>
					<span><font face="宋体" size="3"> ${state4}状态D</font></span>
				</p>
			</td>
		</tr>
	</tbody>
</table>
        `

        // 重点:开启新一页,可以实现多页打印
        LODOP.NewPage();
        // 可以通过模板的方式让其打印
        LODOP.ADD_PRINT_HTM(5, 10, "100%", "100%", printHtml);
        // 也可以直接添加条形码
        LODOP.ADD_PRINT_BARCODE(barcodeTop, barcodeLeft, barcodeWidth, barcodeHeight, "128A", barCodeValue);
        LODOP.SET_PRINT_STYLEA(0, "ShowBarText", 0);//设置是否显示二维码下方的文字
        // 或者直接添加文本
        LODOP.ADD_PRINT_TEXT(textTop, textLeft, textWidth, textHeight, simpleCode)// 增加纯文本项

    }

    // 先预览再打印不会出现试用字样。
    LODOP.PREVIEW();
}

标签:打印机,网页,打印,checkState,let,Lodop,PRINT,options,LODOP
From: https://www.cnblogs.com/lixin-link/p/17296769.html

相关文章

  • 微信公众号开发--获取网页授权并自定义菜单点击获得openid跳转
    之前做了个自定义菜单的click事件,但是订阅号升级为服务号,相应的有了网页的基础授权(需要认证的服务号)其中使用到了自定义菜单接口:http://mp.weixin.qq.com/wiki/13/43de8269be54a0a6f64413e4dfa94f39.html网页授权获取用户基本信息接口:http://mp.weixin.qq.com/wiki/17/c0f37d5704f0......
  • 网页一键分享按钮HTML代码
    在网页中加入以下代码可以实现网页的一键分享:<!DOCTYPEhtml><html><head><METAhttp-equiv="content-type"content="text/html;charset="UTF-8"><title>Inserttitlehere</title></head><body><divclass......
  • C++ MFC中嵌入web网页控件(WebBrowser、WebView2、CEF3)
    1、简介WebBrowser控件最常见的用途之一是向应用程序添加Internet浏览功能。使用IWebBrowser2接口,可以浏览到本地文件系统、网络或万维网上的任何位置。可以使用IWebBrowser2::Navigate方法告知控件要浏览到哪个位置。第一个参数是包含位置名称的字符串。要浏览到本地文件系......
  • 网页端WebRTC推流转换为RTMP/GB28181等其他直播流协议
    网页端WebRTC推流转换为RTMP/GB28181等其他直播流协议WebRTC是一个在WEB浏览器端广泛应用的流媒体引擎,通过点对点的方式实现音视频数据的传输,以完成视频会议等功能。但是考虑到WebRTC主要是为有限人数情况下的点对点视频会议服务,在做其他直播应用的时候,或者接入现有流媒体网络的......
  • 微信接口开发之高级篇系列【网页授权接口】
    【1】带微信帐号的手机 【2】打开浏览器,这里以IE为例。     输入:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login【3】用手机登录你的微信,使用微信中的“扫一扫”功能,扫描上面网页中的二维码。在手机上会出现以下界面:......
  • C# winform操作网页文件
    虽然不想,但是活得干,所以还得啊,C#在大学的时候自学过一段时间,算是初学者吧,但已有一年时间没怎么碰过,现在修改实验室里的软件,需要在winform中对本地网页文件进行操作,但我想无论是本地还是网站上的文件其原理都是一样一样的吧。好了废话不多说,现说下问题,1.winform加载一个本地网页文件......
  • 前端网页分辨率测试工具
    以下代码存为html即可<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"><head><title>Te......
  • 网页打印(不使用插件的情况下)
    //剔除不需要打印的部分functionContrarypreview(){bdhtml=document.body.innerHTML;sprnstr="<!--startprint-->";eprnstr="<!--endprint-->";vartophtml=bdhtml.substr(0,......
  • markdown.md不保存网页编辑器
    {GrammarName}的内容提取器(Extracter)得到单词流TokenList和语法树Node后,就可以得到{GrammarName}的实际内容{ExtractedType}了。之后程序员就可以自由地对此{ExtractedType}对象进行任何操作了。实现{ExtractedType}Extracter的要点,简述如下:用后序优先遍历算法(Post-OrderTra......
  • 网页版的Excel输入个公式都这么卷了吗?
    对比一下:桌面版,输入到第四参数时,才勉强有一个提示。 网页版:整个就是把【插入函数】对话框给搬了过来…… ......