如何使用 C# 将 Ascii 命令发送到 TRITON 60 系列 60 毫米迷你售货亭打印机

本文关键字:系列 打印机 货亭 TRITON 何使用 Ascii 命令 | 更新日期: 2023-09-27 18:37:14

我需要将 Ascii 命令发送到 TRITON 60 系列 60 mm MINI-KIOSK,并希望使用 C# 代码获取状态

例如:"DLE EOT SOH"这是用于获取打印机实时状态的ASCII代码,如何使用C#将此命令发送到打印机并获取打印机的状态。

如何使用 C# 将 Ascii 命令发送到 TRITON 60 系列 60 毫米迷你售货亭打印机

根据我在网上找到的Axiohm TRITON 60数据表,该打印机与USB或RS232上的ESC/POS命令集兼容。

一个叫Nicholas Piasecki的人有一个博客,他谈到将数据发送到支持此命令集的打印机。从他的博客条目中是以下代码(请参阅末尾的"将文档发送到打印机"):

private static void Print(string printerName, byte[] document)
{
    NativeMethods.DOC_INFO_1 documentInfo;
    IntPtr printerHandle;
    documentInfo = new NativeMethods.DOC_INFO_1();
    documentInfo.pDataType = "RAW";
    documentInfo.pDocName = "Bit Image Test";
    printerHandle = new IntPtr(0);
    if (NativeMethods.OpenPrinter(printerName.Normalize(), out printerHandle, IntPtr.Zero))
    {
        if (NativeMethods.StartDocPrinter(printerHandle, 1, documentInfo))
        {
            int bytesWritten;
            byte[] managedData;
            IntPtr unmanagedData;
            managedData = document;
            unmanagedData = Marshal.AllocCoTaskMem(managedData.Length);
            Marshal.Copy(managedData, 0, unmanagedData, managedData.Length);
            if (NativeMethods.StartPagePrinter(printerHandle))
            {
                NativeMethods.WritePrinter(
                    printerHandle,
                    unmanagedData,
                    managedData.Length,
                    out bytesWritten);
                NativeMethods.EndPagePrinter(printerHandle);
            }
            else
            {
                throw new Win32Exception();
            }
            Marshal.FreeCoTaskMem(unmanagedData);
            NativeMethods.EndDocPrinter(printerHandle);
        }
        else
        {
            throw new Win32Exception();
        }
        NativeMethods.ClosePrinter(printerHandle);
    }
    else
    {
        throw new Win32Exception();
    }
}

它基本上是一堆 P/Invoke 调用(他在他的博客文章中提供了示例代码的链接),允许您将原始数据发送到指定的打印机(如果这是打印机的连接方式,则可能通过 USB)。我知道打印机型号与您的型号不同,但希望通信技术相似。

我建议阅读他的文章,下载并检查他的示例代码,看看是否有任何可能对您有所帮助的内容。特别是,他有指向ESC/POS命令和编程指南的链接,如果您还没有它们,它们可能会很有用。