斑马打印机

拈花ヽ惹草 提交于 2020-04-04 06:31:18
 
(待测试)
 
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
namespace _01_UserTestUI
{
       /*条码打印命令说明
   ^XA                           //条码打印指令开始
    ^MD30                         //设置色带颜色的深度, 取值范围从-30到30
   ^LH60,10                      //设置条码纸的边距
   ^FO20,10                      //设置条码左上角的位置
   ^ACN,18,10                    //设置字体
   ^BY1.4,3,50                   //设置条码样式。1.4是条码的缩放级别,3是条码中粗细柱的比例, 50是条码高度
  ^BC,,Y,N                      //打印code128的指令
   ^  FD12345678^FS                //设置要打印的内容, ^FD是要打印的条码内容^FS表示换行
   ^  XZ                           //条码打印指令结束
   */                            //上面的指令会打印12345678的CODE128的条码
    /// <summary>
    /// 属性类
    /// </summary>
    public class CreatData
    {
        [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:", (uint)FileAccess.ReadWrite, 0, 0, (int)FileMode.Open, 0, 0);
            if (iHandle != -1)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        public bool Write(string Mystring)
        {
            if (iHandle != -1)
            {
                int i;
                OVERLAPPED x;
                byte[] mybyte = Encoding.Default.GetBytes(Mystring);
                return WriteFile(iHandle, mybyte, mybyte.Length, out i, out x);
            }
            else
            {
                throw new Exception("LPT1端口未打开!");
            }
        }
        public bool Close()
        {
            return CloseHandle(iHandle);
        }
        [DllImport("fnthex32.dll")]
        public static extern int GETFONTHEX(
                                            string BarcodeText,
                                            string FontName,
                                            string FileName,
                                            int Orient,
                                            int Height,
                                            int Width,
                                            int IsBold,
                                            int IsItalic,
                                            StringBuilder ReturnBarcodeCMD);
        string sBarCodeCMD = "";            //条码打印命令
        StringBuilder sb1 = new StringBuilder(10240);
        int i1;
        //i1 = GETFONTHEX("测试","宋体","temp1",0,30,20,0,0, sb1);
        //sBarCodeCMD = sb1.ToString() + "^XA^MD30^LH20,20^FO20,20^XGtemp1,1,1^FS^XZ";
    }
}

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!