私は今、コマンドをプリンターに送信してプレーンテキストを印刷する単純なプログラムをC#で作成しようとしていますが、方法がわかりません。私が今直面している2つの主な問題があります:
1. プリンターとの通信方法は?
Google 検索を行ったが満足のいく結果が得られなかった後、Brothers のメイン ページに移動し、いわゆる b-PAC3 SDK を見つけました。
b-PAC* ソフトウェア開発キットは、Microsoft® Windows® 用のソフトウェア ツールで、独自のアプリケーションからカスタマイズされたラベルを印刷できます。
ダウンロードしてインストールした後、インストールされたディレクトリに「Samples」という名前のフォルダーを見つけました-いくつかの異なる言語(VB、VS、VSCなど)で書かれたサンプルコードがあります。これらのサンプルコードがうまくいくことを願っていましたこの SDK とプリンターは同じ会社から提供されているため、動作します。しかし、彼らはしませんでした。ここでこれらのサンプルの 1 つをお見せしましょう: (C# のコード)
/*************************************************************************
b-PAC 3.0 Component Sample (RfidRW)
(C)Copyright Brother Industries, Ltd. 2009
*************************************************************************/
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleSampleCSharp
{
class Program
{
private const int NOERROR = 0;
private const string ANTENNA_READER_WRITER = "Reader/Writer side";
static void Main(string[] args)
{
// Create Rfid Instance
bpac.RfidClass rfid = new bpac.RfidClass(); // Rfid Instance
string selectedDevice; // selected device
/* GetInstalledDevices */
Console.WriteLine("==GetInstalledDevices()==");
object[] arrDevices = (object[])rfid.GetInstalledDevices();
if (rfid.ErrorCode == NOERROR)
{
Console.WriteLine("Succeed to GetInstalledDevices()");
int index = 0;
foreach (string device in arrDevices)
{
Console.WriteLine(String.Format("[{0}] {1}", index, device));
index++;
}
// select device
Console.WriteLine("Please Select Device");
int selectedDeviceIndex = int.Parse(Console.ReadLine());
selectedDevice = arrDevices[selectedDeviceIndex].ToString();
}
else
{
Console.WriteLine("Failed to GetInstalledDevices()");
goto CleanUp;
}
// ....
}
}
}
このコードを実行すると、最初の問題が発生します:(以下の引用とまったく同じように表示されました。申し訳ありませんが、評判が低いため画像を投稿できません):
==GetInstalledDevices()==
GetInstalledDevices() に成功する
デバイスを選択してください
エラーはありませんでしたが、プログラムがデバイスを見つけられないようです。なぜこれが起こるのかわかりません。
2. QL スタイルのコマンドの書き方
プリンターの種類ごとに独自のコマンド言語があることを知っているので、ブラザーのサイトで検索したところ、参考文献が見つかりました。
ブラザー QL シリーズ コマンドリファレンス (QL-500/550/560/570/580N/ 650TD/700/1050/1060N)
私自身、サーマル プリンターを使用した経験がなく、残念ながらこのコマンド リファレンスにはサンプルがなく、コマンドの記述方法を理解するのが非常に困難です。
ブラザー QL シリーズのプリンターを使ったことのある人はいますか?
PS: 使用しているプリンターは Brother QL 560 です。