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

Print a barcode to a Intermec PB20 via the LinePrinter API

提问人:Steve 提问时间:8/26/2008 最后编辑:ɢʀᴜɴᴛSteve 更新时间:7/20/2017 访问量:4573

问:

有谁知道如何从 Windows Compact Framework 应用程序将条形码打印到 Intermec PB20 蓝牙打印机?我们目前正在使用 Intermec LinePrinter API,但无法找到打印条形码的方法。 ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­

C# Windows-移动

评论


答:

0赞 Martin Marconcini 8/26/2008 #1

上次我必须打印条形码(尽管有打印机或框架)时,我求助于将 True Type 字体与我需要的条形码一起使用。(就我而言是 EAN-13 的东西),一个欧洲条形码。

有些字体,您只需在一些字体上写下数字(和/或字母,如果支持),您就会获得任何扫描仪都可以读取的完美条形码:)

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

0赞 Steve 8/26/2008 #2

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

0赞 Tim Williscroft 8/26/2008 #3

抛弃所有 API,直接使用串口 API。

使用打印机语言,您可以获得不错的结果。 所有其他方法都会导致挫败感。 不是那么漂亮,但这就是我旧工厂的工作方式。 每天 4k 打印作业,没有遗漏。

0赞 Frank Krueger 8/26/2008 #4

免费 3 的 9

这是第 3 部分(共 9 部分)(有时称为“代码 39“),一种广泛使用的条形码标准 包括大写字母, 数字和几个符号。这是 不是 UPC 的条形码(通用 价格代码)在产品上找到 商店。但是,大多数种类的条形码 扫描仪将识别 3 个中的 9 个 好。

1赞 Steve 8/26/2008 #5

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

这是我们的解决方案,以防其他人在使用 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

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