gpt4 book ai didi

c# - OPOS PosPrinter.PrintNormal 不打印

转载 作者:行者123 更新时间:2023-11-30 20:58:31 26 4
gpt4 key购买 nike

下面是我的代码:

PosExplorer posExplorer = new PosExplorer();
DeviceCollection receiptPrinterDevices = posExplorer.GetDevices(DeviceType.PosPrinter);
DeviceInfo receiptPrinterDevice = posExplorer.GetDevice(DeviceType.PosPrinter,"SRP2");
PosPrinter printer = (PosPrinter)posExplorer.CreateInstance(receiptPrinterDevice);

printer.Open();
printer.Claim(10000);
printer.DeviceEnabled = true;
printer.PrintNormal(PrinterStation.Receipt, "test print 1");

我进行了调试,一切都无一异常(exception)地进行了,也已经确认目标打印机是正确的,但是打印机没有打印任何东西。有没有我做错的步骤?非常感谢任何指导。谢谢


如果有帮助,我的打印机接口(interface)通过以太网连接到特定 IP。

最佳答案

问题似乎是您没有在 PrintNormal 字符串的末尾发送换行符 (\n),没有它,服务对象只会缓冲行数据,等待直到它看到 \n,然后再将数据发送到设备。

printer.PrintNormal(PrinterStation.Receipt, "test print 1\n"); 

来自 PrintNormal 上的 POS for .net 文档

Newline / Line Feed (10 Decimal)

Print any data in the line buffer, and feed to the next print line. (A carriage return is not required in order to print the line.)

这是因为打印机必须一次打印一个完整的行,所以它会一直等到你告诉它你已经完成了一行才开始打印,这允许你使用 2 个或更多 PrintNormal 如果需要(例如在循环中),则调用单行打印输出来构建行数据。

我在联网的 POS 打印机 (Tysso PRP-250) 上运行了以下代码,使用\n 打印了该行,没有它则不打印。

PosExplorer posExplorer = new PosExplorer();
DeviceInfo receiptPrinterDevice = posExplorer.GetDevice(DeviceType.PosPrinter, "SRP2");
PosPrinter printer = posExplorer.CreateInstance(receiptPrinterDevice) as PosPrinter;

printer.Open();
printer.Claim(10000);
if (printer.Claimed)
{
printer.DeviceEnabled = true;
printer.PrintNormal(PrinterStation.Receipt, "test print 1\n");
printer.DeviceEnabled = false;
}
printer.Release();
printer.Close();

关于c# - OPOS PosPrinter.PrintNormal 不打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16034319/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com