条形码打印 EPL命令解释

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;using System.Runtime.InteropServices;namespace ITE.Windows.Common{public class BarCodePrint{//并口打印[StructLayout(LayoutKind.Sequential)]private struct OVERLAPPED{int Internal;int InternalHigh;int Offset;int OffSetHigh;int hEvent;}[DllImport("kernel32.dll")]private static extern int CreateFile(string lpFileName,uint dwDesiredAccess,int dwShareMode,int lpSecurityAttributes,int dwCreationDisposition,int dwFlagsAndAttributes,int hTemplateFile);[DllImport("kernel32.dll")]private static extern bool WriteFile(int hFile,byte[] lpBuffer,int nNumberOfBytesToWrite,out int lpNumberOfBytesWritten,out OVERLAPPED lpOverlapped);[DllImport("kernel32.dll")]private static extern bool CloseHandle(int hObject);private int iHandle;public bool Open(){iHandle = CreateFile("lpt1", 0x40000000, 0, 0, 3, 0, 0);if (iHandle != -1){return true;}else{return false;}}public bool Write(String Mystring){if (iHandle != -1){int i;OVERLAPPED x;byte[] mybyte = System.Text.Encoding.Default.GetBytes(Mystring);return WriteFile(iHandle, mybyte, mybyte.Length, out i, out x);}else{throw new Exception("端口未打开!");}}public bool Close(){return CloseHandle(iHandle);}private string BaseBarCodeString(){StringBuilder BarSb = new StringBuilder();BarSb.Append("Q240,019");//设置标签长度和间距, 长度=240dots=30mm,间距=24dots=3mmBarSb.Append("\n\r");BarSb.Append("q1020");//使用此命令设置可打印区域的宽度,该命令带参数 参数为正整数BarSb.Append("\n\r");BarSb.Append("rN");BarSb.Append("\n\r");BarSb.Append("S4");//使用此命令来设置打印速度,该命令带参数 参数一般0~6BarSb.Append("\n\r");BarSb.Append("D15");//使用此命令来设定打印浓度,该命令带参数 参数一般0~15BarSb.Append("\n\r");BarSb.Append("ZB");//ZB命令调整打印方向从左上开始,ZT打印方向从右下开始BarSb.Append("\n\r");BarSb.Append("JB");BarSb.Append("\n\r");BarSb.Append("O");BarSb.Append("\n\r");BarSb.Append("R16,0");BarSb.Append("\n\r");BarSb.Append("N");BarSb.Append("\n\r");BarSb.Append("{0}");BarSb.Append("\n\r");BarSb.Append("P1");//P1<回车>打印,1为打印数量BarSb.Append("\n\r");return BarSb.ToString();}public string GetStorageNoBarCodeCommandString(string stockCode,string productCode,string wight){StringBuilder BarSb = new StringBuilder();BarSb.Append("A60,45,0,2,2,1,N,\&;" + stockCode + "\&;");BarSb.Append("\n\r");BarSb.Append("A100,165,0,4,1,1,N,\&;" + productCode + "\&;");BarSb.Append("\n\r");BarSb.Append("A150,190,0,4,1,1,N,\&;" + wight + "\&;");//打印文本内容BarSb.Append("\n\r");BarSb.Append("B240,80,0,3,3,6,90,N,\&;" + stockCode + "\&;");//打印条码/*B240,80,0,E30,3,6,90,B,"123456789012"<回车> * 例范围为1-9;参数N为普通打印,如为R则为反转打印;“1234567890123”为打印内容打印条码,240,80为X,Y坐标点;0为条码方向正向;E30为EAN13码;3,6为条码的细条宽度,,粗条宽度;90为条码高度;B表示打印条码下方字符;“123456789012”为打印内容,注意EAN13码最后一位自动生成*/return string.Format(BaseBarCodeString(), BarSb.ToString());}}}

如果打印机用的是USB口的,要将lpt口映射成usb的,

NET USE LPT1 \\192.168.1.111\Printer /Persistent:YES

192.168.1.111—目标机器IP

Printer—-目标机器打印机共享名

EPL2命令说明

EPL2严格区分大小写

A语法 Ap1,p2,p3,p4,p5,p6,p7,“DATA”参数 p1=以象素点为单位的水平起始位置p2=以象素点为单位的垂直起始位置p3=旋转Value Description0 No rotation1 90 degrees2 180 degrees3 270 degrees4 No rotation5 90 degrees6 180 degrees7 270 degrees4-7是针对亚洲字体的设置p4=字体选择Value Description203 dpi 300 dpi1 20.3 cpi, 6 pts, 25 cpi, 4 pts,(8 x 12 dots) (12 x 20 dots)2 16.9 cpi, 7 pts, 18.75 cpi, 6 pts,(10 x 16 dots) (16 x 28 dots)3 14.5 cpi, 10 pts, 15 cpi, 8 pts,(12 x 20 dots) (20 x 36 dots)4 12.7 cpi, 12 pts, 12.5 cpi, 10 pts,(14 x 24 dots) (24 x 44 dots)5 5.6 cpi, 24 pts, 6.25 cpi, 21 pts,(32 x 48 dots) (48 x 80 dots)6 Numeric Only Numeric Only(14 x 19 dots) (14 x 19 dots)7 Numeric Only Numeric Only(14 x 19 dots) (14 x 19 dots)亚洲打印机Simplified Chinese, Japanese, Korean8 203 dpi fonts : 24 x 24 dots300 dpi Double-byte fonts : 36 x 36 dots300 dpi Single-byte fonts : 24 x 36 dotsTraditional Chinese, Japanese9 300 dpi Double-byte fonts: 36 x 36 dots300 dpi Single-byte fonts : 24 x 36 dotsKorean – Reservedp5=水平膨胀,值:1-6&8p6=垂直膨胀,值:1-9p7=N代表普通,R表示反转图象"DATA"=数据B用于打印标准条码—–上面的例子是根据这个标准来的

经验是由痛苦中粹取出来的

条形码打印 EPL命令解释

相关文章:

你感兴趣的文章:

标签云: