如何在 Intermec PM4i 打印机上打印 QR 码

Posted

技术标签:

【中文标题】如何在 Intermec PM4i 打印机上打印 QR 码【英文标题】:How do I print a QR Code on an Intermec PM4i printer 【发布时间】:2014-09-30 08:52:56 【问题描述】:

我有一个外部服务,它使用文本文件填充 Intermec Easy Coder PM4i 打印机上的标签,以向打印机发送指令。

我当前的文本文件如下所示:

AN 7
NASC -2
MAG 1,1:PP 98,92:DIR 1:FT "Swiss 721 BT",12,0,100
NI:PT "Sample Date: ";DATE$("F")
PP 98,598:FT "Swiss 721 BT",12,0,138
NI:PT ""
PP 98,450
BT "CODE128"
BM 2
BH 50
BF "Swiss 721 BT",10,0,0,1,1 ON
BF ON
PP 98,550:FT "Swiss 721 BT",8,0,138
PB "C7108411Q1"

PP 750,100
BT "QRCODE"
BM 10
BH 300
BF "Swiss 721 BT",10,0,0,1,1 ON
BF ON
PP 600,225:FT "Century Schoolbook BT",8,0,138
PB "7108411"

PP 98,450:FT "Swiss 721 BT",8,0,138
PT "Project:"
PP 290,450:FT "Swiss 721 BT",8,0,138
PT "Project 1"

PP 98,420:FT "Swiss 721 BT",8,0,138
PT "Contract:"
PP 290,420:FT "Swiss 721 BT",8,0,138
PT "219H,219H-ICC G4D"

PP 98,390:FT "Swiss 721 BT",8,0,138
PT "Customer:"
PP 290,390:FT "Swiss 721 BT",8,0,138
PT "Customer 1"

PP 98,360:FT "Swiss 721 BT",8,0,138
PT "Drawing:"
PP 290,360:FT "Swiss 721 BT",8,0,138
PT "921-7064"

PP 98,330:FT "Swiss 721 BT",8,0,138
PT "Mark:"
PP 290,330:FT "Swiss 721 BT",8,0,138
PT "Test Mark"

PP 98,300:FT "Swiss 721 BT",8,0,138
PT "Item:"
PP 290,300:FT "Swiss 721 BT",8,0,138
PT "102X5.0C H S"

PP 98,270:FT "Swiss 721 BT",8,0,138
PT "Weight:(kg)"
PP 290,270:FT "Swiss 721 BT",8,0,138
PT "1,721.300"

PP 98,80:FT "Swiss 721 BT",8,0,138
PT "Despatch Label"
PP 350,80:FT "Swiss 721 BT",8,0,138
PT "29-Nov-13 09:47"

PP 98,240:FT "Swiss 721 BT",8,0,138
PT "Rev:"
PP 290,240:FT "Swiss 721 BT",8,0,138
PT "Sample Rev"

PP 98,180:FT "Swiss 721 Bold BT",11,0,138
NI:PT "Company Name"
PF

并生成不正确的二维码,如图片网址所示: http://www.imageupload.co.uk/images/2014/09/30/DSC0619.jpg

有人知道这个文本文件的正确配置吗

【问题讨论】:

【参考方案1】:

[Intermec PM4i,通用/文本打印驱动程序,USB 连接,通过通用/文本打印机驱动程序进行记事本打印]

编辑本文末尾的可能解决方案。

我在标签上打印二维码时遇到同样的问题,智能手机二维码阅读器都没有读取它,相同的设备和应用程序可以读取在我的 Java 应用程序 (http://zxing.github.io/zxing/) 中创建的二维码。我不知道为什么,但是 Intermec 内部的barcode_qrcode 生成器从所有质量 1-4 级别的相同输入数据创建不同的图像。

BARSET 属性为“条码名称”、“大条比例(未使用)”、“窄条比例(未使用)”、“放大 1-128”、“条高 1-500”、“安全级别 1=低,2=中等,3=质量,4=高”

INPUT ON
NASC 1252
BF OFF
PP 30,520 
PT "My label test"
PP 400,380:AN 7:BARSET "QRCODE",1,1,15,1,4
PB "ABC123"
PF

我无法通过 Windows 网络打印管道(通用文本驱动程序或 Intermec 打印驱动程序)发送此信息,它在打印机 LCD 屏幕上闪烁“未找到字体”错误或打印机没有收到任何内容。然后我尝试了USB,至少可以从记事本打印脚本。

编辑(可能的解决方案) 我正在阅读 DirectProtocol 程序员指南,但我想它缺少一个非常重要的细节。指纹程序员指南给了我解决方案。 BARSET 属性是 "barcode name"、1、1、"mag 1-128"、"version 1,2"、"quality 1-4"trick is to give version=2属性。我测试的所有智能手机扫描仪都运行良好,与 version=1 不同的是失败了。

INPUT OFF
NASC 1252
BF OFF
FT "Swiss 721 Bold BT",12,0,100 
PP 50,500:PT "Text line goes here"
PP 400,400:AN 7:BARSET "QRCODE",1,1,7,2,4
PB "ABC123 aabbcc....very long text goes here...I mean about 200 chars or more"
PRINTFEED

【讨论】:

以上是关于如何在 Intermec PM4i 打印机上打印 QR 码的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 USB 使用 C# 将原始 IPL 发送到 intermec pm4i 打印机

Delphi 打印到通用文本驱动程序(Intermec PM4i)?

Intermec 打印机在发送 IPL 命令后停止打印

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

Intermec 打印机中的 DP 命令问题

使用 Intermec 打印语言版本 12 在字段中居中非固定宽度字体