我正在编写用于打印植物园标签的代码。每个标签都是单独打印的,但每个标签上都有不同的信息。每个标签都包含一个科学名称,其大小变化很大,因此可以超过2行(我们的标签大小为10厘米宽乘2.5厘米高)。当我们超过24个字符时,我们的问题主要发生在名称上(见带有**的行)。如果我们选择一个包含24个字符或更少的名称,那么它的打印效果很好。任何其他内容都不会打印。如果我们把标签上的所有其他"项目"都去掉,只留下"name"元素,那么它只打印前24个字符,并截断其余字符(我们这样做是为了测试^FB块和另一个元素之间可能的重叠是否会导致这个问题)。我们对使用^FB的其他元素进行了尝试,发现它们显示出相同的行为,但出现此问题的长度不同:例如,"cc"(国家代码的缩写)的限制为21个字符。
附加信息:我们在BASIC环境中编译此代码,并使用如下所示的变量,如":name:"、":Acc.dt":"。我们的数据库提供了此信息,我们已经检查了是否有任何会截断长名称的内部例程等。我们的代码在ZPL中运行良好,但我们最近不得不转移到ZPL II(我们购买了一个新型号GX430t),并不得不修改我们的ZPL代码,这时这个问题开始出现。
这是我们的代码:
^XA
^LH40,40
^MMT
^PW1200
^LL1200
^FO16,05^A0N,35,^FDAcc. num.^FS
^FO170,05^A0,35,^FV":accnum:"^FS
^FO360,05^A0,35,^FV":qual:"^FS
^FO350,35^A0N,30,^FDAcc.dt.^FS
^FO450,35^A0N,30,^FB790,3,0,L,
^FH^FV":accdt:"^FS
^FO430,70^^A0N,25,^FB790,3,0,L,
^FH^FDProv. type^FS
^FO560,70^A0N,25,^FV":provtype:"^FS
^FO800,225^A0N,30,^FB790,3,0,L,
^FV":cc:"^FS
**^FO10,100^A0N,40,^FB790,3,0,L,
^FV":name:"^FS**
^FO1000,05^A0,35,^FV":proptype:"^FS
^FO5,225^A0,25^FVColl.^FS
^FO55,225^A0,25^FV":coll:"^FS
^FO375,225^A0,25,^FV":consstat:"^FS
^FO1000,70^A0,25,^FV":reqby:"^FS
^FO535,180^BCN,55,N,N,N^FV":qual:"^FS
^FO60,45^BCN,35,N,N,N^FV":accnum:"^FS
^PQ1,0,1,Y
^XZ
以下是我们试图解决的问题(如果有些看起来像外卡,请道歉):
- 更改标签上的字体类型、大小和位置
- 将^FO更改为^FT
- 查看了我们的内部数据库逻辑
- 拿走^FH\
- 更改^FB行内的值(我们尝试了几乎所有可能的排列)
- 手动键入的名称超过24个字符(使用记事本-没有数据库/编译器)-同样的问题
对此有任何想法都将不胜感激Kerry
我以前遇到过这个问题,在打印机制造商、固件和语言中也遇到过。
首先,一些直接来自2014 ZPL II编程指南(P1012728-009修订版A)的解释。
"^TB命令打印具有定义宽度和高度的文本块。文本块具有自动换行功能。如果文本超过块高度,文本将被截断。"
"^FB(字段块)命令允许您将文本打印成定义的块类型格式。它可以使用原点、字体和为文本字符串指定的旋转,并且它包含一个自动换行函数。"
从技术上讲,文本块和字段块之间的区别在于,前者的高度为点,后者的高度为 另外请注意,尽管没有提及,^FB命令也会截断不符合指定行数的文本,这就是A0指令的字体大小和FB 顺便说一句,在TSPL等其他语言中,没有截断文本块——如果你告诉块有3行高,但有足够的文本容纳4行,那么第4行与第3行重叠就表明了这一点——这可能看起来很糟糕,但这比截断的数据丢失要好,截断的数据损失并不明显。 对于两个命令: 事实上,我只能使^FB命令按预期工作,但这可能是因为^ TB没有在我使用的固件中实现(ZPL II"兼容"蓝牙打印机)。 您可以在标签查看器中测试以下2x2标签片段: 特别是,我在A0和FD命令前面加了FB。使用查看器,您可以快速测试在配料行中从FT和FO更改的效果,更改A0字体大小的效果,以及将FB行数从3更改为2的效果(查看器不会截断文本btw)。 当然,实际打印标签是不匹配的,因为您的ZPL II"兼容"打印机可能会根据其制造商和固件版本截断文本,也可能不会截断文本。 我希望这能有所帮助!^XA
~TA0
^MTD
^MNW
^MMT
^MFN
~SD15
^PR6
^PON
^PMN
^PW406
^LS0
^LRN
^LL406
^LT0
^LH0,0
^CI0
^XZ
^XA
^FO324,10,0^FB386,2,0,C,0^A0R,36,28.8^FH^FD"The King" Cupcake^FS
^FO278,10,0^FB386,1,0,C,0^A0R,28,22.4^FH^FDUse By 11/24/2015 02:45 PM^FS
^FO152,10,0^FB386,1,0,C,0^A0R,24,19.2^FH^FD11/24/2015 02:45 PM^FS
^FO62,140,0^FB250,1,0,R,0^A0R,24,19.2^FH^FDSL: 4 hours^FS
^FO38,10,0^FB386,1,0,L,0^A0R,18,14.4^FH^FDPREP DATE:^FS
^FO8,10,0^FB386,1,0,L,0^A0R,28,22.4^FH^FD11/24/2015 10:45 AM^FS
^FO62,10,0^FB50,1,0,L,0^A0R,24,19.2^FH^FDEMP:^FS
^FO92,10,0^FB376,3,0,J,0^A0R,18,14.4^FH^FDIngredients: 1 1/2 cups all-purpose flour, 1 teaspoon baking powder, 1/2 teaspoon salt, 8 tablespoons (1 stick) unsalted butter, room temperature, 1 cup sugar, 3 large eggs, 1 1/2 teaspoons pure vanilla extract, 3/4 cup milk.^FS
^PQ3,,,Y
^XZ