C# 通过LinePrinter API将条形码打印到Intermec PB20

C# 通过LinePrinter API将条形码打印到Intermec PB20,c#,windows-mobile,C#,Windows Mobile,有人知道如何从Windows Compact Framework应用程序向Intermec PB20蓝牙打印机打印条形码吗?我们目前正在使用Intermec LinePrinter API,但无法找到打印条形码的方法。 上次我不得不打印条形码时(不管是打印机还是框架),我使用了一种真正的字体来打印我需要的条形码。(在我的例子中是EAN-13什么的),一种欧洲条形码 有些字体只需写数字(和/或字母,如果支持的话),就可以得到任何扫描仪都能读到的完美条形码:) 谷歌是你的朋友。我不知道是否有免费的。

有人知道如何从Windows Compact Framework应用程序向Intermec PB20蓝牙打印机打印条形码吗?我们目前正在使用Intermec LinePrinter API,但无法找到打印条形码的方法。
上次我不得不打印条形码时(不管是打印机还是框架),我使用了一种真正的字体来打印我需要的条形码。(在我的例子中是EAN-13什么的),一种欧洲条形码

有些字体只需写数字(和/或字母,如果支持的话),就可以得到任何扫描仪都能读到的完美条形码:)


谷歌是你的朋友。我不知道是否有免费的。

谢谢你的回答。有免费的字体可供选择——不过,PB20是一款带有一些内置字体的手持打印机。它具有打印条形码的能力,并可通过串行端口直接操作。Intermec提供了一个.Net CF API,使打印变得“简单”,正是使用该API,我们无法知道如何告诉打印机打印条形码。

放弃所有API,直接使用串行端口API

使用打印机语言,你会得到不错的结果。 其他方法都会导致挫折。 不太漂亮,但我的老工厂就是这样工作的。 每天打印4k份作业,从未错过任何一份。

这是9中的3(有时称为“代码”) 39”),广泛使用的条形码标准 包括大写字母, 数字和几个符号。这是 不是UPC(通用)的条形码 价格代码)可在以下位置的产品上找到: 商店。然而,大多数种类的条形码 扫描仪仅能识别9个中的3个 好的


谢谢大家的想法。直接打印到串行端口可能是最灵活的方法。在这种情况下,我们不希望复制Intermec dll中已内置的所有工作,以处理端口、打印机错误等。我们可以通过向打印机发送适当的代码,将其切换到不同的模式,然后通过这种方式传递直接打印机命令,从而实现此工作

这是我们的解决方案,以防其他人在使用Intermec打印机时遇到类似问题。以下代码是一个测试用例,它不会捕获打印机错误并重试等(请参阅Intermec代码示例)

Intermec支持网站上有一份名为“技术手册”的技术文件,描述了直接控制打印机的代码。“轻松打印”部分介绍了如何打印各种条形码

Intermec.Print.LinePrinter lp;

int escapeCharacter = int.Parse("1b", NumberStyles.HexNumber);
char[] toEzPrintMode = new char[] { Convert.ToChar(num2), 'E', 'Z' };

lp = new Intermec.Print.LinePrinter("Printer_Config.XML", "PrinterPB20_40COL");
lp.Open();

lp.Write(charArray2); //switch to ez print mode

string testBarcode = "{PRINT:@75,10:PD417,YDIM 6,XDIM 2,COLUMNS 2, SECURITY 3|ABCDEFGHIJKL|}";
lp.Write(testBarcode);

lp.Write("{LP}"); //switch from ez print mode back to line printer mode

lp.NewLine();
lp.Write("Test"); //verify line printer mode is working