我正在使用以下命令打印对齐文本:
^FB1800,3,0,J^FT100,200^A0B,26,26^FH\^FDLONG TEXT TO BE PRINTED, WHICH DOESNT FIT IN ONLY 3 LINES...^FS
命令 ^ FB1800,3,0,J 打印宽度为1800点的字段,最多3行,对齐。
问题是如果文本超过最大行数,它会覆盖最后一行! :(这当然使最后一行的文字不可读。
我该如何避免?有人知道是否有办法削减超出文本?
文档准确地说明了这一点:
超过最大行数的文本将覆盖最后一行。更改字体大小会自动增加或减小块的大小。
供参考:我使用的是打印机Zebra 220Xi4。
任何帮助将不胜感激。谢谢!
答案 0 :(得分:5)
查看^TB
命令。它优先于^FB
命令,如果文本超出TB
参数中定义的大小,则截断
答案 1 :(得分:1)
我遇到了同样的问题,在我的情况下修复它的问题 - 虽然不是最优雅的方式 - 是指定更多的最大行数,然后以只有前三个行的方式格式化它可见区域。
在您的情况下,例如^FB1800,7,0,J
而不是^FB1800,3,0,J
这至少可以立即为我修复,因为我在标签的底部打印了这个文本。如果你需要将它放在中间或顶部的某个地方,可能会有一些技巧,在溢出区域的顶部放一个(白色)盒子,因为Zebra打印机似乎在打印前渲染。希望它有所帮助。
答案 2 :(得分:0)
根据您使用的高级编程语言(假设您是),您可以使用此类代码完成相同的操作(将要打印的文本截断为指定数量的字符)(C#在这里显示):
public void PrintLabel(string price, string description, string barcode)
{
const int MAX_CAPS_DESC_LEN = 21;
const int MAX_LOWERCASE_DESC_LEN = 32;
try
{
bool descAllUpper = HHSUtils.IsAllUpper(description);
if (descAllUpper)
{
if (description.Length > MAX_CAPS_DESC_LEN)
{
description = description.Substring(0, MAX_CAPS_DESC_LEN);
}
}
else // not all upper
{
if (description.Length > MAX_LOWERCASE_DESC_LEN)
{
description = description.Substring(0, MAX_LOWERCASE_DESC_LEN);
}
}
. . .
这就是我正在使用的;有没有理由更喜欢" raw" ^ TB命令这个?