C#LPT指令打印条码——代码嵌套指令
VS中存在Com口操作的控件,却未有现成的LPT端口控件,而相对COM口来说,LPT的速度要快,所以在打印的时候客户一般选择LPT通讯方式,经过网上的一些查阅,终于实现了LPT口的打印,打印机为Zebra,写出来与大家分享。其他品牌打印机原理类似,只是打印指令有所区别。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace PrintDemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
tbBarCode.Focus();
}
private void tbBarCode_KeyDown(object sender,
KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Enter:
PrintBarcode(tbBarCode.Text.Trim());
tbBarCode.Text = "";
tbBarCode.Focus();
break;
default:
break;
}
}
private void PrintBarcode(string Barcode)
{
Barcode = "^XA^FO48,12^BY4^BCN,152,N,N^FD>;" +
Barcode.Trim() + "^FS^FT62,220^CI0^ABN,44,28^FD" +
Barcode.Trim() + "^FS^PQ1,0,1,Y^XZ";
PrintDemo.POSPrinter prn = new
PrintDemo.POSPrinter("LPT1");
string strmsg = prn.PrintLine(Barcode);
if (strmsg != "")
{
MessageBox.Show(strmsg);
}
}
}
}
其中类POSPrinter定义如下
namespace PrintDemo
{
class POSPrinter
{
const int OPEN_EXISTING = 3;
string prnPort = "LPT1";
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
private static extern IntPtr CreateFile(string lpFileName,
int dwDesiredAccess,
int dwShareMode,
int lpSecurityAttributes,
int dwCreationDisposition,
int dwFlagsAndAttributes,
int hTemplateFile);
public POSPrinter()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public POSPrinter(string prnPort)
{
this.prnPort = prnPort;//打印机端口
}
public string PrintLine(string str)
{
IntPtr iHandle = CreateFile(prnPort, 0x40000000,
0, 0, OPEN_EXISTING, 0, 0);
if (iHandle.ToInt32() == -1)
{
return "LPT1 Port Open Failed";
}
else
{
FileStream fs = new FileStream(iHandle,
FileAccess.ReadWrite);
StreamWriter sw = new StreamWriter(fs,
System.Text.Encoding.Default); //写数据
sw.WriteLine(str);
sw.Close();
fs.Close();
return "";
}
}
}
}
C#LPT指令打印条码——代码嵌套指令相关推荐
- 电脑识别指令和代码的原理
电脑识别指令和代码的原理 一.前言 电脑代bai码,就du是让电脑执行的命令.可以让电脑执行相应zhi的命令.就电脑本身底层代码所言就dao是0和1,或者说二进制码.十六进制等等.还有汇编.C.C++ ...
- php发送指令,PHP发送AT指令实例代码
需求: 发送短信到用户输入手机, 要求可以自定义信息内容 问题:没有电信猫, 使用免费api接口无法自定义短信内容 解决方案:通过4G网卡, 接在服务器上, 通过AT指令操作网卡, 发送短信 查阅发现 ...
- delphi 实现屏幕旋转代码_X86指令混淆之函数分析和代码块粉碎
本文为看雪论坛优秀文章看雪论坛作者ID:三猫原理二进制分析的时候经常遇到经过混淆的函数,所以一直想自己学习实现一个简单的指令乱序demo,也不需要太复杂(其实就是自己菜而已).能阻止IDA F5党(就 ...
- 指令和数据都用二进制代码存放在内存中,从时空观角度回答CPU如何区分读出的代码是指令还是数据
指令用来确定"做什么"和"怎样做",数据是"做"的时候需要原始数. 计算机可以从时间和空间两方面来区分指令和数据,在时间上,取指周期从 ...
- 代码 or 指令,浅析ARM架构下的函数的调用过程
摘要:linux程序运行的状态以及如何推导调用栈. 1.背景知识 1.ARM64寄存器介绍: 2.STP指令详解(ARMV8手册): 我们先看一下指令格式(64bit),以及指令对于寄存机执行结果的影 ...
- FLASH(M25P16)-页编程(PP)指令时序代码及仿真波形(内含M25P16仿真模型文件)
PP指令 pp是页编程指令:需要先打开写使能(0000_0110),发送PP指令号(0000_0010),后面给24位地址,然后接数据,时序图发送如下图所示. PP指令时序代码 //页编程(PP)指令 ...
- CPU如何区分读出的代码是指令还是数据
计算机可以从时间和空间两方面来区分指令和数据,在时间上,取指周期从内存中取出的是指令,而执行周期从内存取出或往内存中写入的是数据,在空间上,从内存中取出指令送控制器,而执行周期从内存从取的数据送运算器 ...
- 开源免费代码_02_单摇杆远程遥控小车,基于Arduino的ESP-NOW,ESP32发送指令、ESP32接收指令,实现小车毫秒级完美控制_公羽兴
发文希望能够帮忙物联网爱好者少走弯路,少被割韭菜.如果觉得此文对您有帮助的话帮忙点个赞,感谢!!! 哔哩哔哩网址:开源免费代码_02_单摇杆远程遥控小车,基于Arduino的ESP-NOW,ESP32 ...
- 开源免费代码_01_基于Arduino的ESP-NOW,ESP32发送指令、ESP-01S接收指令,通过ESP-01S继电器实现LED灯开关控制_公羽兴
发文希望能够帮忙物联网爱好者少走弯路,少被割韭菜.如果觉得此文对您有帮助的话帮忙点个赞,感谢!!! 哔哩哔哩网址:开源免费代码_01_基于Arduino的ESP-NOW,ESP32发送指令.ESP-0 ...
最新文章
- HESSIAN 海森矩阵
- 聊聊Elasticsearch的ExponentiallyWeightedMovingAverage
- 绑定服务调用本地服务中的方法
- LeetCode(Java) 两数相加
- c++ 调用 ffmpeg 编程
- 现代化权限管理解决方案平台推动商业模式的演进
- Java jdbctemplate赋值_Spring 之 Spring JdbcTemplate的使用
- [转载]二叉树先序、中序、后序三种遍历的非递归算法
- 【BZOJ】【3850】ZCC Loves Codefires
- 虚拟专题:知识图谱 | DDoS攻击恶意行为知识库构建
- Linux学习之路01
- vs2008试用期到期解决办法
- python socket recv超时_python使用多线程编写tcp客户端程序,你还没掌握吗?
- jQuery中的end()
- iphonex适配游戏_Galaxy Fold应用适配大测试,这些软件超有远见!
- 徽州区数字城管平台智慧管理城市
- Linux计划任务以及进程检测与控制
- 计算机网络发现已关闭啥意思,电脑显示网络发现已关闭,是什么意思?怎样解决问题?...
- 双稳态继电器工作原理图_常见的继电器及工作原理
- python爬虫简单入门级,小白讲说
热门文章
- 短视频全自动剪辑制作视频渲染语音同步AE混剪
- vim编辑器使用手册
- 简单认识c语言的概念
- 郑州大学“战役杯”第一次比赛题解
- 爬取豆瓣电影TP250(文字信息+保存图片)
- 数据库优化的几种方式
- python可以实现什么炫酷图形吗_如何把图片变得炫酷多彩,Python教你这样实现!...
- Difference between ReLU、LReLU、PReLU、CReLU、ELU、SELU
- vue+element实现导入和导出excel
- C++設計模式——觀察者模式