我正在使用 C# 为 Windows 7 64 位平台编写一个 .Net WPF 应用程序。我的应用程序需要与通过 USB 连接的 Zebra KR403 打印机进行通信。我的问题可能非常基本,但我希望这篇文章能够帮助其他刚在 .Net 中使用此打印机的人。
1. 我应该使用哪个 SDK?就像将 .dll 添加到我的项目并使用它一样简单吗?我尝试过使用 Windows CE SDK,但当 ZSDK_API.dll 尝试加载 ZebraUsb.dll 时,我收到 BadImageFormatException。这通常意味着该 dll 是为不同的平台编译的。
2. 我应该使用 SDK 进行打印还是应该使用普通的 .Net 打印库?这两种选择的优点是什么?例如,如果我使用 .Net 库进行打印,我仍然需要使用 ZBI(用于与打印机通信的语言)吗?
3. 如何获取打印机的状态(缺纸、介质未加载等)?我找到了一个指南(必须删除链接;声誉不够高,无法发布超过 2 个链接),它解释了如何在 Windows CE 或 Mobile 中执行此操作,但我找不到 Windows 7(普通桌面版本)的等效内容。
如果有人可以帮助我解决这些问题,我将不胜感激,我将在这里发布我的最终解决方案(或执行上述操作所需的核心代码)以供其他人使用。
预先感谢您的帮助。
更新:
我发现一些代码可以让我通过 USB 直接与打印机通信:http://danielezanoli.blogspot.com/2010/06/usb-communications-with-zebra-printers.html
我还找到了 KR403 打印机的硬件集成商指南,其中解释了 ~HQES 命令的结果:https://support.zebra.com/cpws/docs/crawl/UG_Kiosk/KR403_UG.pdf#xml=https://km.zebra.com/kb/index?page=answeropen&type=open&searchid=1363543831914&answerid=16777218&iqaction=6&url=https%3A%2F%2Fsupport.zebra.com%2Fcpws%2Fdocs%2Fcrawl%2FUG_Kiosk%2FKR403_UG.pdf&highlightinfo=12583129,8815,8825
我现在可以使用上述库通过 USB 或使用 .Net 中的 SerialPort 类通过串行端口将 ~HQES 命令发送到打印机。然后,我可以使用上面的硬件集成商指南解释结果并检查打印机的状态。因为这很容易做到,所以我现在不会尝试移植 SDK。
最佳答案
我发现一些代码可以让我通过 USB 直接与打印机通信:http://danielezanoli.blogspot.com/2010/06/usb-communications-with-zebra-printers.html
我还找到了 KR403 打印机的硬件集成商指南,其中解释了 ~HQES 命令的结果:https://support.zebra.com/cpws/docs/crawl/UG_Kiosk/KR403_UG.pdf#xml=https://km.zebra.com/kb/index?page=answeropen&type=open&searchid=1363543831914&answerid=16777218&iqaction=6&url=https%3A%2F%2Fsupport.zebra.com%2Fcpws%2Fdocs%2Fcrawl%2FUG_Kiosk%2FKR403_UG.pdf&highlightinfo=12583129,8815,8825
关于.net - 我应该为 KR403 Zebra 打印机使用哪个 SDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15363941/