Files
MesPrintService/Print.Application/Print/EzioInterop.cs

303 lines
12 KiB
C#
Raw Normal View History

2025-07-12 16:20:14 +08:00
using System;
using System.Runtime.InteropServices;
namespace JingGong.Abp.Print.GoDEX
{
public class EzioInterop
{
const string EzioLibrary = "ezio.so.1.1.0";
const string Usblib = "usb-1.0.so.0";
/// <summary>
/// Open 函数
/// </summary>
/// <param name="hostname"></param>
/// <param name="port"></param>
/// <returns></returns>
[DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern bool Open(string hostname, int port);
/// <summary>
/// Close 函数
/// </summary>
[DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)]
public static extern void Close();
// openUSB 函数
[DllImport(Usblib, CallingConvention = CallingConvention.Cdecl)]
public static extern int openUSB();
/// <summary>
/// closeUSB 函数
/// </summary>
[DllImport(Usblib, CallingConvention = CallingConvention.Cdecl)]
public static extern void closeUSB();
/// <summary>
/// OpenDriver 函数
/// </summary>
/// <param name="port"></param>
/// <returns></returns>
[DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)]
public static extern int OpenDriver(string port);
/// <summary>
/// closeport 函数
/// </summary>
/// <returns></returns>
[DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)]
public static extern int closeport();
/// <summary>
/// RcvBuf 函数
/// </summary>
/// <param name="buf"></param>
/// <param name="count"></param>
/// <returns></returns>
[DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)]
public static extern int RcvBuf(IntPtr buf, UIntPtr count);
/// <summary>
/// sendbuf 函数
/// </summary>
/// <param name="buf"></param>
/// <param name="count"></param>
/// <returns></returns>
[DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)]
public static extern int sendbuf([MarshalAs(UnmanagedType.LPArray)] byte[] buf, int count);
/// <summary>
/// sendcommand 函数
/// </summary>
/// <param name="cmd"></param>
/// <returns></returns>
[DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)]
public static extern int sendcommand(string cmd);
/// <summary>
/// setup 函数
/// </summary>
/// <param name="mm"></param>
/// <param name="dark"></param>
/// <param name="speed"></param>
/// <param name="mode"></param>
/// <param name="gap"></param>
/// <param name="top"></param>
/// <returns></returns>
[DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)]
public static extern int setup(int mm, int dark, int speed, int mode, int gap, int top);
/// <summary>
/// Bar 函数
/// </summary>
/// <param name="BarcodeType"></param>
/// <param name="PosX"></param>
/// <param name="PosY"></param>
/// <param name="Narrow"></param>
/// <param name="Wide"></param>
/// <param name="Height"></param>
/// <param name="Rotation"></param>
/// <param name="Readable"></param>
/// <param name="data"></param>
/// <returns></returns>
[DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)]
public static extern int Bar(string BarcodeType, int PosX, int PosY, int Narrow, int Wide, int Height, int Rotation, int Readable, string data);
/// <summary>
/// Bar_S 函数
/// </summary>
/// <param name="BarcodeType"></param>
/// <param name="PosX"></param>
/// <param name="PosY"></param>
/// <param name="data"></param>
/// <returns></returns>
[DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)]
public static extern int Bar_S(string BarcodeType, int PosX, int PosY, string data);
/// <summary>
/// Bar_QRcode 函数
/// </summary>
/// <param name="PosX"></param>
/// <param name="PosY"></param>
/// <param name="Mode"></param>
/// <param name="Type"></param>
/// <param name="ErrorLevel"></param>
/// <param name="Mask"></param>
/// <param name="Mul"></param>
/// <param name="Len"></param>
/// <param name="Rotation"></param>
/// <param name="data"></param>
/// <returns></returns>
[DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)]
public static extern int Bar_QRcode(int PosX, int PosY, int Mode, int Type, string ErrorLevel, int Mask, int Mul, int Len, int Rotation, string data);
/// <summary>
/// Bar_QRcode_S 函数
/// </summary>
/// <param name="PosX"></param>
/// <param name="PosY"></param>
/// <param name="Len"></param>
/// <param name="data"></param>
/// <returns></returns>
[DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)]
public static extern int Bar_QRcode_S(int PosX, int PosY, int Len, string data);
/// <summary>
/// DrawHorLine 函数
/// </summary>
/// <param name="PosX"></param>
/// <param name="PosY"></param>
/// <param name="Length"></param>
/// <param name="Thick"></param>
/// <returns></returns>
[DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)]
public static extern int DrawHorLine(int PosX, int PosY, int Length, int Thick);
/// <summary>
/// DrawVerLine 函数
/// </summary>
/// <param name="PosX"></param>
/// <param name="PosY"></param>
/// <param name="Length"></param>
/// <param name="Thick"></param>
/// <returns></returns>
[DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)]
public static extern int DrawVerLine(int PosX, int PosY, int Length, int Thick);
/// <summary>
/// InternalFont_TextOut 函数
/// </summary>
/// <param name="FontType"></param>
/// <param name="PosX"></param>
/// <param name="PosY"></param>
/// <param name="Mul_X"></param>
/// <param name="Mul_Y"></param>
/// <param name="Gap"></param>
/// <param name="RotationInverse"></param>
/// <param name="Data"></param>
/// <returns></returns>
[DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)]
public static extern int InternalFont_TextOut(string FontType, int PosX, int PosY, int Mul_X, int Mul_Y, int Gap, string RotationInverse, string Data);
/// <summary>
/// InternalFont_TextOut_S 函数
/// </summary>
/// <param name="FontType"></param>
/// <param name="PosX"></param>
/// <param name="PosY"></param>
/// <param name="Data"></param>
/// <returns></returns>
[DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)]
public static extern int InternalFont_TextOut_S(string FontType, int PosX, int PosY, string Data);
/// <summary>
/// DownloadFont_TextOut 函数
/// </summary>
/// <param name="FontName"></param>
/// <param name="PosX"></param>
/// <param name="PosY"></param>
/// <param name="Mul_X"></param>
/// <param name="Mul_Y"></param>
/// <param name="Gap"></param>
/// <param name="RotationInverse"></param>
/// <param name="Data"></param>
/// <returns></returns>
[DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)]
public static extern int DownloadFont_TextOut(string FontName, int PosX, int PosY, int Mul_X, int Mul_Y, int Gap, string RotationInverse, string Data);
/// <summary>
/// DownloadFont_TextOut_S 函数
/// </summary>
/// <param name="FontName"></param>
/// <param name="PosX"></param>
/// <param name="PosY"></param>
/// <param name="Data"></param>
/// <returns></returns>
[DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)]
public static extern int DownloadFont_TextOut_S(string FontName, int PosX, int PosY, string Data);
/// <summary>
/// TrueTypeFont_TextOut 函数
/// </summary>
/// <param name="FontName"></param>
/// <param name="PosX"></param>
/// <param name="PosY"></param>
/// <param name="Font_W"></param>
/// <param name="Font_H"></param>
/// <param name="SpaceChar"></param>
/// <param name="RotationInverse"></param>
/// <param name="TTFTable"></param>
/// <param name="WidthMode"></param>
/// <param name="Data"></param>
/// <returns></returns>
[DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)]
public static extern int TrueTypeFont_TextOut(string FontName, int PosX, int PosY, int Font_W, int Font_H, int SpaceChar, string RotationInverse, string TTFTable, int WidthMode, string Data);
/// <summary>
/// TrueTypeFont_TextOut_S 函数
/// </summary>
/// <param name="FontName"></param>
/// <param name="PosX"></param>
/// <param name="PosY"></param>
/// <param name="Data"></param>
/// <returns></returns>
[DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)]
public static extern int TrueTypeFont_TextOut_S(string FontName, int PosX, int PosY, string Data);
/// <summary>
/// ecTextOut 函数
/// </summary>
/// <param name="x"></param>
/// <param name="y"></param>
/// <param name="height"></param>
/// <param name="fontname"></param>
/// <param name="TEXT"></param>
/// <returns></returns>
[DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)]
public static extern int ecTextOut(int x, int y, int height, string fontname, string TEXT);
/// <summary>
/// ecTextOutR 函数
/// </summary>
/// <param name="x"></param>
/// <param name="y"></param>
/// <param name="height"></param>
/// <param name="fontname"></param>
/// <param name="TEXT"></param>
/// <param name="width"></param>
/// <param name="degree"></param>
/// <returns></returns>
[DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)]
public static extern int ecTextOutR(int x, int y, int height, string fontname, string TEXT, int width, int degree);
/// <summary>
/// ecTextOutW 函数
/// </summary>
/// <param name="x"></param>
/// <param name="y"></param>
/// <param name="height"></param>
/// <param name="fontname"></param>
/// <param name="TEXT"></param>
/// <returns></returns>
[DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)]
public static extern int ecTextOutW(int x, int y, int height, string fontname, [MarshalAs(UnmanagedType.LPWStr)] string TEXT);
/// <summary>
/// ecTextOutRW 函数
/// </summary>
/// <param name="x"></param>
/// <param name="y"></param>
/// <param name="height"></param>
/// <param name="fontname"></param>
/// <param name="TEXT"></param>
/// <param name="width"></param>
/// <param name="degree"></param>
/// <returns></returns>
[DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)]
public static extern int ecTextOutRW(int x, int y, int height, string fontname, [MarshalAs(UnmanagedType.LPWStr)] string TEXT, int width, int degree);
[DllImport(EzioLibrary, CallingConvention = CallingConvention.Cdecl)]
public static extern int putimage(int x, int y, [MarshalAs(UnmanagedType.LPStr)] string Filename, int Degree);
}
}