首页 > 解决方案 > 使用 C# 使用带有 PosExplorer Opos SDK.Net 的打印机的 IP 地址

问题描述

在使用打印机的设备名称之前,我有一个这样的代码,但我们迁移了,现在在打印机上使用 ip 地址,我现有的代码看起来像这样

...

internal void ProcessInformation()
        {
            
            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");

        }

...

我需要帮助才能开始,例如如何使用 PosExplorer 编写代码,使用 ip 地址将 api 连接到打印机并使用标题和正文格式进行打印?

标签: c#sdkazure-sdk-.netopos

解决方案


如何指定它取决于打印机供应商提供的服务对象的类型及其设置方式。

似乎没有使用 POS for.NET API 的标准化通用方法。


一种可能的方法是使用本机 POS for.NET 模块作为服务对象并使用PosCommon.DevicePath 属性(POS for .NET v1.12 SDK 文档)

备注
PosExplorer类尝试使用以下算法将 DevicePath 属性初始化为物理设备的硬件路径

1和2是通过另一种方式写入要预先设置的信息的方法。

  1. 如果物理硬件支持即插即用,并且服务对象通过HardwareId自定义属性或配置 XML 文件映射到特定硬件 ID,则PosExplorer类将DevicePath属性设置为物理设备的HardwarePath属性。服务对象通常可以使用此DevicePath属性直接访问设备。
  2. 如果设备不支持即插即用,但已通过 Posdm.exe 或 WMI 进行配置,则DevicePath属性将设置为配置设备时指定的路径。

可以在应用程序执行时动态设置3。

  1. 如果设备不支持即插即用且未通过 Posdm.exe 或 WMI 进行配置,则DevicePath属性将设置为空字符串(“”),并且必须由服务对象在base/ 中的Open方法之前设置可以调用基本类。

如果您将 OPOS 用于您的服务对象,您可能需要更改 Windows 注册表设置,因此在运行应用程序时您无能为力。


无论如何,请询问您的打印机供应商是否支持它以及如何做。


推荐阅读