我正在尝试在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
吗?还是读起来有道理?
答案 0 :(得分:0)
ResultCodeExtended
是ControlObject
的属性。
您的OPOSHelper.printer
可能是某人创建的库,您将通过该库使用内部ControlObject
。
如果OPOSHelper.printer
没有公开ResultCodeExtended
,您将无法得知。
请检查OPOSHelper.printer
的规范或相应的源代码。
答案 1 :(得分:0)
将代码包装在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
发生以下情况之一:
指定的电台是无效的-它必须是“凭条”或“收据”。
指定的工作站不支持位图的打印(即, 适当的CapSlpBitmap或CapRecBitmap属性设置为 错误)。
打印机当前处于插入模式。打印机当前 在删除模式下。为bitmapNumber指定的数字小于 大于1或大于20,因此无效。
width值小于或等于零,但未设置为 PrinterBitmapAsIs,因此无效。
NoExist
找不到文件名。
Extended
ExtendedErrorTooBig:位图太宽而无法打印而没有 转换,或者太大而无法转换。
ExtendedErrorBadFormat:指定的文件不是位图 文件,或格式不受支持。
如果您确定要在断点处设置断点,那么您会看到有关ResultCodeExtended属性的详细信息。