vue项目联调TSC的TTP系列打印机,实现打印

概要

打印机大概可以分为两种类型的链接的方式,来实现打印机和系统的链接。一种为USB连接方式,一种为网络连接方式。不同类型的打印机,方法可能不同,但是思路大体上是一致的。以下以TTP系列打印机作为范例。

前期准备

首先根据开发需求,去打印机的厂家官网查找相应的资料,如果找不到可以直接通过电话去联系,去找一下相关的资料,能直接找到相应的实现demo最好。
下载相关资源的链接:https://www.chinatsc.cn/zh-CN/downloads
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

一般大型的打印机设备厂家官网就有相应的资料。
找资料的时候注意一下,因为有的资料并不是直接就是文档,有的是夹在下载的应用中的,就比如说你找到类似的技术支援这种模块下的时候就更要注意一下,笨办法就是你可以根据自己的开发语言来找到相关的东西,然后需要下载,就下载一下看看,看看有没有夹带。

实现思路

有了资料之后,我们可以先看一下相关的文件。在Example,应该是包含了一个应用程序,两个js文件加上一个html文件,接下来我们直接打开html文件来读相应的demo代码。

代码解释

	<script type="text/javascript">
	//IP地址
	const regexExp_IP = /^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gi;
	//端口
	const regexExp_Port = /^[1-9][0-9]*$/gi;
	//Print Server服务是webSocket服务地址
	var url = "ws://127.0.0.1:8888";
	//usb链接path
	var usb_path;
	//Dom元素
	var usb_check = document.getElementById("usb_check");
	var net_check = document.getElementById("net_check");
		
	var usb_printers = document.getElementById("usb_printers");
	var net_ip = document.getElementById("net_ip");
	var net_port = document.getElementById("net_port");
	
	// 页面加载执行的方法
	window.onload=function(){
   
		//加载时获取 USB 列表
		var obj = {
   "usb_list": []};
		websocket_connection(obj);
		
		//获取 TSC PrintServer 版本
		var obj2 = {
   "about": []};
		websocket_connection(obj2);
	}
	//当前选择的USB
	function usb_check_onclick() {
   
		var usb_check = document.getElementById("usb_check");
		var net_check = document.getElementById("net_check");
		if(net_check.checked)
			net_check.checked = false;
		else
			usb_check.checked = true;
	}
	//当前选择的网络链接
	function net_check_onclick() {
   
		var usb_check = document.getElementById("usb_check");
		var net_check = document.getElementById("net_check");
		if(usb_check.checked)
			usb_check.checked = false;
		else
			net_check.checked = true;
	}
	function check_interface() {
   
		if(usb_check.checked)
		{
   
			if(usb_printers.length <= 0)
				return false;
			else
				return true;
		}
		else if(net_check.checked)
		{
   
			if(!regexExp_IP.test(net_ip.value))
			{
   
				regexExp_IP.lastIndex = 0;
				regexExp_Port.lastIndex = 0;
				alert("Invalid IP!");
				return false;
			}
			else if(!regexExp_Port.test(net_port.value))
			{
   
				regexExp_IP.lastIndex = 0;
				regexExp_Port.lastIndex = 0;
				alert("Invalid Port!");
				return false;
			}
			
			regexExp_IP.lastIndex = 0;
			regexExp_Port.lastIndex = 0;
			return true;
		}
		else
			return false;
	}
	//打印的相关方法
	//关于打印内容的参数,在TSC.js文件中有说明
	function printTemplate_Onclick() {
   
	
		const u8 = new Uint8Array(2);
		u8[0] = 13;
		u8[1] = 10;
		
		
		if(!check_interface())
			return;
			
		var obj = {
   };
		
		init();
		if(usb_check.checked)
			openport_usb(usb_printers.value);
		else if(net_check.checked)
			openport_net(net_ip.value, net_port.value);
		
		sendUint8Array(u8);
		downloadpcx("D:\\Projects\\TSCPrintServer\\TSCPrintServer\\bin\\Debug\\Example\\assert\\file\\UL.PCX", "UL.PCX"); //打印内容中的图案
		clearbuffer();
		setup("100", "63", "4", "8", "0", "0", "0");
		barcode("100", "150", "128", "200", "1", "0", "4", "4", "Barcode Test");
		printerfont("100", "450", "3", "0", "3", "3", "Print Font Test");
		windowsfont("100", "600", "100", "0", "3", "1", "Arial", "にっぽんごEnglish中文한글");
		sendcommand_crlf("PUTPCX 800,150,\"UL.PCX\""); 
		printlabel(1,1);
		closeport();
		
		obj.functions_inorder = functions_inorder;
		websocket_connection(obj);
	}
	
	function selftest_Onclick() {
   
		
		if(!check_interface())
			return;
			
		var obj = {
   };
		
		init();
		if(usb_check.checked)
			openport_usb(usb_printers.value);
		else if(net_check.checked)
			openport_net(net_ip.value, net_port.value);
		sendcommand_crlf("SELFTEST");
		closeport();
		
		obj.functions_inorder = functions_inorder;
		websocket_connection(obj);
	}

	function printStatus_Onclick() {
   
		
		if(!check_interface())
			return;
			
		var obj = {
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值