【问题标题】:How to get ResultCodeExtended OPOS?如何获得 ResultCodeExtended OPOS?
【发布时间】:2018-12-29 05:15:20
【问题描述】:

我正在尝试在 Epson TM-T20II 上打印图像。这是我的代码:

string path = @"test.bmp";
if (File.Exists(path))
{
    Console.WriteLine("exists");
    OPOSHelper.printer.ErrorEvent += Printer_ErrorEvent; // Do I have to configure this?
    OPOSHelper.printer.SetBitmap(1, PrinterStation.Receipt, path, PosPrinter.PrinterBitmapAsIs, PosPrinter.PrinterBitmapCenter);
    OPOSHelper.printer.PrintNormal(PrinterStation.Receipt, "\x1B|1B");                     
}
else
{
    Console.WriteLine("DOES NOT EXIST!!!");
}

当我运行它时,我得到了下一个错误:

方法 SetBitmap 引发了异常。特定于类的错误条件 发生。错误条件代码在 ResultCodeExtended 属性

我想阅读ResultCodeExtended property,但我找不到方法,我必须配置ErrorEvent吗?或者应该怎么读?

【问题讨论】:

    标签: c# epson escpos opos


    【解决方案1】:

    ResultCodeExtendedControlObject 的属性。

    您的OPOSHelper.printer 可能是某人创建的库,您将通过该库使用内部ControlObject

    如果OPOSHelper.printer不暴露ResultCodeExtended,你就无法知道。

    请查看OPOSHelper.printer的规范,或对应的源码。

    【讨论】:

    • <br> 在此站点上不做任何事情。您必须输入两次
    • @AustinWBryan 感谢您的编辑和建议。
    【解决方案2】:

    将代码包装在 try/catch 中。 SetBitmap 函数是 POS for .NET 框架的一部分。

    查看此链接以查看有关 SetBitmap 函数的文档:https://docs.microsoft.com/en-us/previous-versions/windows/embedded/ms843078(v%3dwinembedded.11)

    您的 try catch 应该至少将异常类型转换为 POSControlException:

    SetBitmap 可能会抛出带有以下错误代码的 PosControlException:

    Illegal
    

    出现以下情况之一:

    指定的车站无效——它必须是 Slip 或 Receipt。

    指定的工作站不支持位图的打印(即 适当的 CapSlpBitmap 或 CapRecBitmap 属性设置为 假)。

    打印机当前处于插入模式。打印机当前 在删除模式。为 bitmapNumber 指定的数字小于 大于 1 或大于 20,因此无效。

    宽度的值小于或等于零但未设置为 PrinterBitmapAsIs,因此无效。

    NoExist
    

    找不到文件名。

    Extended
    

    ExtendedErrorTooBig:位图太宽而无法打印 变形,或者变形太大。

    ExtendedErrorBadFormat:指定的文件不是位图 文件,或者它的格式不受支持。

    如果您在捕获时设置断点,您会看到有关 ResultCodeExtended 属性的详细信息,我敢肯定。

    【讨论】:

      猜你喜欢
      • 2014-02-23
      • 1970-01-01
      • 1970-01-01
      • 2013-04-08
      • 1970-01-01
      • 2019-08-06
      • 2013-07-25
      • 2011-11-05
      • 2021-03-21
      相关资源
      最近更新 更多