我现在正在尝试用C#编写一个简单的程序,它向打印机发送命令以打印纯文本但不知道如何操作。我现在面临两个主要问题,
1,如何与打印机通信?
在做了一些谷歌搜索但没有得到满意的结果后,我去了兄弟的主页,发现那里有一个所谓的b-PAC3 SDK
下载并安装后,在其安装的目录中,我找到了一个名为“Samples”的文件夹 - 有一些用不同语言(VB,VS,VSC,......)编写的示例代码。我希望这些示例代码可以工作,因为这个SDK和打印机来自同一家公司。但他们没有。让我在这里向您展示其中一个示例:( 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风格的命令?
我知道每种打印机都有自己的命令语言,所以在Brother网站上搜索后我找到了一个参考:
Brother QL Series Command Reference (QL-500/550/560/570/580N/ 650TD/700/1050/1060N)
我自己没有使用热敏打印机的经验,遗憾的是,此命令参考中没有任何示例,这使我很难弄清楚命令应该如何编写。
之前有没有人使用Brother QL系列打印机?
p.s:我使用的打印机是Brother QL 560
答案 0 :(得分:1)
要与打印机通信,您需要做一些事情:
使用命令参考的第7章中提供的信息和libusb附带的示例,制作一个小程序,通过USB检测并打开与打印机的通信通道。
然后,使用本手册中提供的其他信息,向打印机发送一系列ESC命令,以配置它或打印标签。
PS:如果你需要改善USB通信的背景,我推荐一个很好的参考叫做" USB in a Nutshell&#34 ;,可以在beyondlogic dot org上找到(我不能发布超过两个链路)。
答案 1 :(得分:0)
我认为OPOS (from Microsoft)应该是您的案例的解决方案之一,由Brother QL 560提供自己的opos驱动程序。一旦获得驱动程序(在dll中),您就可以像使用常规Web控件一样轻松开始开发。