Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 我应该为KR403 Zebra打印机使用哪个SDK_.net_C# 4.0_Printing_Zebra Printers - Fatal编程技术网

.net 我应该为KR403 Zebra打印机使用哪个SDK

.net 我应该为KR403 Zebra打印机使用哪个SDK,.net,c#-4.0,printing,zebra-printers,.net,C# 4.0,Printing,Zebra Printers,我正在为Windows7 64位平台使用C#编写一个.NETWPF应用程序。我的应用程序需要与通过USB连接的Zebra KR403打印机通信。我的问题可能很基本,但我希望这篇文章能帮助那些在.Net中使用这台打印机的新手 一,。 我应该使用哪个SDK?它是否像在我的项目中添加一个.dll并使用它那样简单?我尝试过使用Windows CE SDK,但是当ZSDK_API.dll尝试加载ZebraUsb.dll时,我遇到了一个BadImageFormatException。这通常意味着dll是为不

我正在为Windows7 64位平台使用C#编写一个.NETWPF应用程序。我的应用程序需要与通过USB连接的Zebra KR403打印机通信。我的问题可能很基本,但我希望这篇文章能帮助那些在.Net中使用这台打印机的新手

一,。 我应该使用哪个SDK?它是否像在我的项目中添加一个.dll并使用它那样简单?我尝试过使用Windows CE SDK,但是当ZSDK_API.dll尝试加载ZebraUsb.dll时,我遇到了一个BadImageFormatException。这通常意味着dll是为不同的平台编译的

二,。 我应该使用SDK打印还是使用普通的.Net打印库?这两种选择的优点是什么?例如,如果我使用.Net库进行打印,我是否仍必须使用ZBI(用于与打印机通信的语言)

三,。 如何获取打印机的状态(缺纸、未装入介质等)?我找到了一份指南(必须删除链接;声誉不高,无法发布超过2个链接),其中解释了如何在Windows CE或Mobile中执行此操作,但我找不到适用于Windows 7(普通桌面版本)的同等指南

如果有人能帮我解决这些问题,我将不胜感激,我将在这里发布我的最终解决方案(或完成上述工作所需的核心代码),供其他人使用

提前感谢您的帮助

更新:


我在这里找到了一些允许我通过USB直接与打印机通信的代码:

我还找到了KR403打印机的硬件积分器指南,其中解释了~HQES命令的结果:


现在,我可以使用上述库通过USB或使用.Net中的SerialPort类通过串行端口将~HQES命令发送到打印机。然后,我可以使用上面的硬件积分器指南解释结果,并检查打印机的状态。因为这很容易做到,所以我现在不打算尝试移植SDK。

几年前我玩过Zebra打印机。要使用Zebra提供的SDK,只需在项目中包含对dll的引用(右键单击visual studio中的引用并单击“添加引用”,然后导航到dll)。注意:这是假设他们现在有.NET程序集。他们当时没有回来,但添加互操作代码并不难


我记得,SDK的主要优势(以及我为什么使用它)是它具有一些内置的标签打印功能,包括条形码之类的功能。因此,您可以找到一个单独的库来生成条形码,但Zebra SDK允许您只发送一个字符串(或数字),并让它为您编码并打印条形码。

Zebra目前不提供用于桌面的.NET SDK。如您所见,Zebra.NET SDK适用于较旧的Windows CE/Windows Mobile平台

Zebra确实提供了一个基于Java的SDK。它并不声称支持KR403,但可能需要20分钟的测试,看看您是否可以将其与您的项目集成:


正如其他人提到的,Zebra的SDK允许您可靠地检查状态,并利用Zebra打印机的功能(如打印机格式存储和调用、打印机图像调用、非USB通信等)。它的性能应该优于其他通用打印库,因为它是为Zebra打印机设计的。

我在这里找到了一些代码,允许我通过USB直接与打印机通信:


我还找到了KR403打印机的硬件集成商指南,其中在此处解释了~HQES命令的结果:

最后,我发现.dll与c#或VB.net兼容,您可以从zebra网站下载:

ZSDK_API.dll ZebraPlatformUtil.dll

我个人通过LAN网络zebra打印机ZT400测试这些.dll,这里使用了一些代码:

using ZSDK_API.Comm;
using ZSDK_API.ApiException;
using ZSDK_API.Printer;



public void SendZplOverTcp(String theIpAddress)
    {

        try
        {
            // Instantiate connection for ZPL TCP port at given address. 
            ZebraPrinterConnection thePrinterConn = new TcpPrinterConnection(theIpAddress, TcpPrinterConnection.DEFAULT_ZPL_TCP_PORT);

            // Open the connection - physical connection is established here.
            thePrinterConn.Open();

            // This example prints "This is a ZPL test." near the top of the label.
            String zplData = "^XA^FO20,20^A0N,25,25^FDThis is a ZPL test.^FS^XZ";

            // Send the data to printer as a byte array.
            thePrinterConn.Write(Encoding.Default.GetBytes(zplData));

            // Close the connection to release resources.
            thePrinterConn.Close();

        }
        catch (ZebraPrinterConnectionException e)
        {

            // Handle communications error here.
            MessageBox.Show(e.StackTrace);
        }

    }

展示你的尝试。你在第三季度做了类似的事情,但是你不说代码是否有效。显示你搜索过的网页,显示你找到的链接,显示你编写的代码,并显示你被困的地方。现在这个问题看起来像是“为我构建这个”,不管你是不是这样想的。例如,“示例代码文章(SA95),可供Zebra ISV程序的所有注册成员下载。”可能很有趣。我担心它听起来可能是这样的,对不起。我甚至不知道从哪里开始。最重要的问题是第一个问题,我相信如果我知道我应该使用哪个SDK,我将能够解决它。第二个是我向有经验的人征求的意见。+1谢谢你的更新!我已经为此奋斗了几个月。您应该添加一个带有链接的答案,以便更好地作为进一步的参考。@MarioVW我在下面添加了一个答案。我目前正在给他们发送电子邮件,以确认没有.Net 4 SDK,但我认为您是对的。我想这个SDK不适用于.Net吗?@hlyates sur是的,我已经在zebra ZT400上对它进行了自我测试,它工作得很好,通过这些.dll,我甚至可以识别传感器、磁头、色带纸的状态…附加了可以下载文件的链接。感谢您的回复。我正在运行Windows 8.1,安装此SDK时遇到问题。java似乎有问题。如果可能的话,你能告诉我你在哪里找到这个完整的网址,而不仅仅是下载网址吗?我真的很想让它工作。:)我还没有在windows 8.1上测试过这个,我的项目正在wind 7中运行,但是在上面的链接中,当你下载它时,你可以找到一个包含所有开发平台的压缩文件:java、windows phone、windows desktop、python……你知道哪里有一些编码Zebra ZDR500系列打印机RFID的示例代码吗?我做了hello world,你的评论帮了我的忙,但是我还没有找到任何关于RFID标签编码的东西。感谢您的考虑和帮助。