如何在直接协议中打印 GS1-Datamatrix,如何添加 FNC1?

Posted

技术标签:

【中文标题】如何在直接协议中打印 GS1-Datamatrix,如何添加 FNC1?【英文标题】:How to print a GS1-Datamatrix in direct-protocol, how do I add FNC1? 【发布时间】:2018-03-23 09:29:28 【问题描述】:

我需要使用direct protocol 通过串行端口将GS1-Datamatrix(代码值是动态的)发送到热敏打印机(intermec)。 GS1 数据矩阵是标准数据矩阵,但它应该以FNC1(功能代码一)开头。

GS1 DataMatrix 是通过添加 FNC1码字在Data Matrix ECC 200版本的首位。

带有标准数据矩阵的标签示例:

<xpml><page quantity='0' pitch='110.1 mm'></xpml>'Seagull:2.1:DP
INPUT OFF
VERBOFF
INPUT ON
SYSVAR(48) = 0
ERROR 15,"FONT NOT FOUND"
ERROR 18,"DISK FULL"
ERROR 26,"PARAMETER TOO LARGE"
ERROR 27,"PARAMETER TOO SMALL"
ERROR 37,"CUTTER DEVICE NOT FOUND"
ERROR 1003,"FIELD OUT OF LABEL"
SYSVAR(35)=0
OPEN "tmp:setup.sys" FOR OUTPUT AS #1
PRINT#1,"Printing,Media,Print Area,Media Margin (X),0"
PRINT#1,"Printing,Media,Print Method,No Ribbon (DT)"
PRINT#1,"Printing,Media,Media Type,Continuous Var Len"
PRINT#1,"Printing,Media,Start Adjust,0"
PRINT#1,"Printing,Media,Stop Adjust,240"
PRINT#1,"Printing,Media,Print Area,Media Width,779"
PRINT#1,"Printing,Media,Print Area,Media Length,881"
PRINT#1,"Printing,Print Quality,Darkness,75"
PRINT#1,"Printing,Print Quality,Print Speed,100"
PRINT#1,"Printing,Media,Media Calibration Mode,Fast"
PRINT#1,"Printing,Media,Length (Slow Mode),0"
PRINT#1,"Printing,Media,Clip Default,On"
CLOSE #1
SETUP "tmp:setup.sys"
KILL "tmp:setup.sys"
LTS& OFF
<xpml></page></xpml><xpml><page quantity='1' pitch='110.1 mm'></xpml>CLL
OPTIMIZE "BATCH" ON
PP318,533:AN7
BARSET "DATAMATRIX",1,1,8,144,0,5
PB "010000012300001710ABC123"
PP150,389:NASC 8
FT "Andale Mono",12,0,99
PT "010000012300001710ABC123"
LAYOUT RUN ""
PF
PRINT KEY OFF
<xpml></page></xpml><xpml><end/></xpml>

如何将PB "010000012300001710ABC123" 添加到FNC1 代码中?

我试过了:

    在打印 GS1-128 时添加 CHR$(128); 与 EAN-128 代码一起使用,请参阅 Programmer's Reference Manual Intermec Direct Protocol v8.60。

    使用Bartender-ultralite 创建 GS1-Datamatrix,然后使用直接协议驱动程序打印到文件。然而,这会在文件中创建一个图像,因此我无法动态更改代码。

【问题讨论】:

【参考方案1】:

我不了解 Intermec,但对于我见过的大多数打印机,将它们用于同等用途的人都是这样做的: - 使用 NiceLabel 软件创建一个面具(不确定是否强制,也许你的也是如此) - 此掩码包含一个变量,用于您可能希望在每次打印之前更改的串行代码 - 你应该在协议中有一个命令来在需要时设置这个变量

然后在变量中你只需要按照你的预期格式化,使用正确的 FNC1 分隔符(我不知道它是用于 Intermec 的,我听说它可能取决于打印机......)

【讨论】:

以上是关于如何在直接协议中打印 GS1-Datamatrix,如何添加 FNC1?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用直接 2d 在打印机 DC 中绘制文本?

如何在Windows上使用Python 3.3.2直接打印到打印机?

openSUSE 连接 Canon PIXMA MG3180 打印机

DHCP 协议原理以及如何配置 DHCP

如何实现报表直接打印需求

java如何打印webservice 发送的soap报文协议