2

Visual Studio 2012 RC で POS システムの C# アプリケーションを開発しています。を使用してラベルプリンターで売上を印刷する必要があります

Brothers P-Touch QL-500 ラベルプリンター。

私がすでにやったこと。

  • 最新の b-pac SDK 3.0 をインストールしました
  • C# アプリケーションへの参照が正常に追加されました。
  • ラベル テンプレートを作成するために、p-touch Editor 5.0 の最新バージョンをインストールしました。
  • 1 つのテンプレート (Mylabel.lbl) を作成しました。

    しかし、その前に。

組み込みの例をいくつか実行しましたが、それらの例は例外をスローします。Googleで多くの検索を行った後、これがプリンターのドライバーの問題であることがわかりました。

ドライバーのインストールにはプリンターの接続が必要なため、ドライバーをインストールできません。 プリンターを持っていません。

私は何をする必要がありますか

  • どうすればこのタスクを実行できるか考えていますか。
  • Brothers P-Touch QL-500 Label printerを使用してラベルを印刷する正しい方法は何ですか。

    助けてください私は検索に多くの時間を費やしました。スタックオーバーフローは私の最後の希望です。私はそのようなラベル印刷に不慣れです。助けてください私は大いに感謝します。

私が使用しているラフの例コード。

bpac.DocumentClass doc = new DocumentClass();
if (doc.Open("templateFile.lbx"))
{
    doc.GetObject("field1").Text = "...";
    doc.GetObject("field2").Text = "...";

    doc.StartPrint("", PrintOptionConstants.bpoDefault);
    doc.PrintOut(1, PrintOptionConstants.bpoDefault);
    doc.EndPrint();
    doc.Close();
}

これは私が試しているサンプルコードです。最初の行で例外がスローされます

bpac.DocumentClass doc = new DocumentClass();

例外画面のプレビューも添付しています。

スローされた例外画面のプレビュー

4

6 に答える 6

8

例外が発生したとき、まったく同じエラーメッセージが表示されました。私にとっての解決策は、「プラットフォームターゲット」を「X86」CPUに設定することでした。これは次の方法で実行できます: (メニュー) プロジェクト -> プロパティ -> (タブ) ビルド -> プラットフォーム ターゲット "x86" 代わりに "任意の CPU"

Windows 7 64 ビットでソフトウェアを開発しました。

詳細については、b-PAC SDK ドキュメントを参照してください。C:\Program Files (x86)\Brother bPAC3 SDK\Doc\bPAC30_eng.chm 「トラブルシューティング」のセクションに、「プログラムが 64 ビット オペレーティング システムで動作しません。プラットフォームを「x86」に変更してください。その後、再コンパイルしてください。」

このソリューションは、PC に接続された QL560 ハードウェアでテストされ、機能しました。

于 2013-11-30T15:20:36.683 に答える
3

このオブジェクトを使用して印刷するために使用したコードを次に示します。

            string strPrinterAddress = "domain\machinename";
            objDoc = new BrssCom.Document();
            string strPath = "192.168.1.45" + " /D" + strPrinterAddress;
            if (objDoc.Open(strPath))
            {
                objDoc.SetText(0, "Recycle: " + recycleReason);

                objDoc.SetText(1, "Other Text");
                objDoc.SetBarcodeData(0, "1234");
                objDoc.DoPrint(BrssCom.PrintOptionConstants.bpoAutoCut, "0");
            }

ただし、@ JamieMeyer は正しいです。テストするプリンターがなければ、これが機能することを絶対に確信することはできません. 私の例では、3 つのフィールドを持つ非常に単純なラベルを使用しています。そのうちの 1 つはバーコードです。名前付き変数を使用するのは簡単なことではありません。実際には、フィールドが追加された順序などに依存します。

私自身はプリンターを持っていなかったので、夜間にコードの更新を送信し、次の日には顧客が何度も何度もテストを行い、ルック アンド フィールを適切なものにするのに約 2 週間かかりました。もう一度やり直すなら、自分でプリンターを購入したでしょう。

幸運を祈りますが、あなたはプリンターなしで暗闇の中で撮影しています。

于 2012-06-23T02:43:54.573 に答える
1

物理ユニットなしでコーディングの結果をどのように検証するつもりですか?? ブラザーはビジュアルエミュレーターを提供していないので、ユニットを入手するのが最善の策です. これらは 75 ドルの実売価格で入手でき、地元の事務用品店の棚に並んでいる可能性があります。http://www.officedepot.com/a/products/506232/Brother-P-Touch-QL-500-PC/

于 2012-06-23T01:45:40.430 に答える
0

ソース: Brother youtube 教育ビデオ: https://www.youtube.com/watch?v=WRssVf8zxQQおよび上記の他の優れた回答。それらは私にとってはうまくいきませんでした。

Visual Studio Community 2017 を使用して、interop.bpac への参照を追加し、次のコマンドを実行しました。

        try
        {
            bpac.Document mylabel = new bpac.Document();
            if (mylabel.Open("SensorNodeLabel.lbx"))
            {
                mylabel.GetObject("labelText").Text = "blah blah";


                mylabel.StartPrint("", bpac.PrintOptionConstants.bpoDefault);
                mylabel.PrintOut(1, bpac.PrintOptionConstants.bpoDefault);
                mylabel.EndPrint();
                mylabel.Close();
            }
        }
        catch ...

これは、QL-700 ラベル プリンターでうまく機能しました。

于 2019-01-27T23:32:39.107 に答える