2

Windows 7 64 ビット プラットフォーム用の C# を使用して .Net WPF アプリケーションを作成しています。私のアプリケーションは、USB 経由で接続された Zebra KR403 プリンタと通信する必要があります。私の質問は非常に基本的なものかもしれませんが、この投稿が .Net でこのプリンターを初めて使用する他の人に役立つことを願っています。

1. どの SDK を使用すればよいですか? プロジェクトに .dll を追加して使用するのと同じくらい簡単ですか? Windows CE SDK を使用してみましたが、ZSDK_API.dll が ZebraUsb.dll をロードしようとすると、BadImageFormatException が発生します。これは通常、dll が別のプラットフォーム用にコンパイルされたことを意味します。

2. 印刷には SDK を使用する必要がありますか?それとも、通常の .Net 印刷ライブラリを使用する必要がありますか? 2つのオプションの利点は何ですか? たとえば、印刷に .Net ライブラリを使用する場合でも、ZBI (プリンターとの通信に使用される言語) を使用する必要がありますか?

3. プリンタのステータス (用紙切れ、メディアがロードされていないなど) を取得するにはどうすればよいですか? Windows CE または Mobile での方法を説明しているガイド (リンクを削除する必要がありました。2 つ以上のリンクを投稿するには評判が高くない) を見つけましたが、Windows 7 (通常のデスクトップ バージョン) の同等のものを見つけることができません。

誰かがこれらの質問で私を助けることができれば、私はそれを大いに感謝し、他の人が使用できるように私の最終的な解決策 (または上記を実行するために必要なコア コード) をここに投稿します。

よろしくお願いします。

アップデート:

ここで、USB 経由でプリンターと直接通信できるコードを見つけました: http://danielezanoli.blogspot.com/2010/06/usb-communications-with-zebra-printers.html

~HQES コマンドの結果を説明している KR403 プリンターのハードウェア インテグレーター ガイドも見つけました。 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 を移植しようとはしません。

4

4 に答える 4

0

Zebraは現在、デスクトップ用の.NETSDKを提供していません。ご覧のとおり、Zebra .NET SDKは、古いWindows CE /WindowsMo​​bileプラットフォームを対象としています。

ZebraはJavaベースのSDKを提供します。KR403をサポートしているとは主張していませんが、プロジェクトと統合できるかどうかを確認するために20分間テストする価値があるかもしれません:http://www.zebra.com/us/en/products-services/software/ link-os/link-os-sdk.html

他の人が言及しているように、ZebraのSDKを使用すると、ステータスを確実にチェックできるだけでなく、Zebraプリンタの機能(プリンタ形式の保存と再呼び出し、プリンタイメージの再呼び出し、非USB通信など)を利用できます。Zebraプリンタで使用するように設計されているため、他の一般的な印刷ライブラリよりもパフォーマンスが優れているはずです。

于 2013-03-14T12:49:55.130 に答える
0

私は数年前にZebraプリンターで遊んだ。ZebraのSDKを使用するには、プロジェクトにdllへの参照を含めるだけです(Visual Studioで参照を右クリックし、[参照の追加]をクリックして、dllに移動します)。注:これは、現在.NETアセンブリがあることを前提としています。彼らはその日に戻っていませんでしたが、相互運用コードを追加することはそれほど難しくありませんでした。

私が覚えているように、SDKの主な利点(および私がSDKを使用した理由)は、バーコードなどのラベル印刷用の組み込み機能を備えていることです。したがって、バーコードを生成するための別のライブラリを見つけることができますが、Zebra SDKを使用すると、文字列(または数値)を送信してエンコードし、バーコードを印刷することができます。

于 2013-03-12T14:32:15.453 に答える
0

最終的に、c# または VB.net と互換性のある .dll が見つかったので、ゼブラの Web サイトからダウンロードできます: ZSDK API

ZSDK_API.dll ZebraPlatformUtil.dll

私はこれらの .dll を LAN ネットワーク ゼブラ プリンタ ZT400 で個人的にテストします。ここではいくつかのコードが使用されています。

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);
        }

    }
于 2015-08-24T16:04:10.910 に答える