- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Runtime.InteropServices;
- namespace Barcode_Print
- {
- /// <summary>
- /// 本类使用说明:
- /// 将一行ZPL指令作为string参数传给write函数即可
- /// </summary>
- class LPTControl
- {
- [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);
- }
- }
- }
- [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);
- }
- }
- }
- 暂时无法判断打印机状态,如缺纸,打印机未开。
ZPL并口打印
最新推荐文章于 2023-08-11 18:21:08 发布