. net的POS无法检测打印机

本文关键字:检测 打印机 POS net | 更新日期: 2023-09-27 17:50:10

我在一个项目中使用。net框架1.12版本的POS。

Microsoft POS for . net是一个类库,是Microsoft Windows Embedded for Point of Service的一部分。http://msdn.microsoft.com/en-us/library/ms828083%28v=winembedded.10%29.aspx

    private PosPrinter GetReceiptPrinter()
    {
        PosExplorer posExplorer = new PosExplorer(this);
        DeviceInfo receiptPrinterDevice = posExplorer.GetDevice(DeviceType.PosPrinter);
        return (PosPrinter)posExplorer.CreateInstance(receiptPrinterDevice);
    } 
上面的

是查找打印机的示例代码。现在我的问题是,POS不能检测打印机,但只有打开模拟器的数据,当我运行我的应用程序。

有谁能帮帮我吗?

. net的POS无法检测打印机

我已经为运行Windows CE作为操作系统的POS机开发了一个应用程序,但是对于该POS机,制造商提供了一个自定义dll来调用我在c#代码中使用的打印机操作。请与POS制造商联系,看看他们是否提供相同的自定义dll。

您的代码行

DeviceInfo receiptPrinterDevice = posExplorer.GetDevice(DeviceType.PosPrinter);

将返回默认第一个发现的PosPrinter,这在您的情况下看起来像是模拟器。

您需要(1)遍历打印机集合并以某种方式选择您想要的打印机。例如

foreach (DeviceInfo deviceInfo in explorer.GetDevices(DeviceType.PosPrinter))
{
    if (isThisThePrinterIWant(deviceInfo))   // user defined function (maybe lookup saved preference file)
    {
        return (PosPrinter)posExplorer.CreateInstance(deviceInfo );
    }
} // Note: GetDevices() not GetDevice()

(2)为您的打印机设置一个逻辑名称(使用打印机附带的软件,或Pos for .Net SDK包含的POSDM实用程序),并将上述行更改为

DeviceInfo receiptPrinterDevice = posExplorer.GetDevice(DeviceType.PosPrinter, "madeUpLogicalName");

(3)只需将所需的打印机设置为默认打印机,并保留您的代码。