如何为“文本”添加换行符?比如说:
Hello World
会变成
Hello World
无论如何,我可以为我的代码添加一个换行符吗?
^FT78,76^A0N,28,28^FH\^FDHello\nWorld^FS
如果我的标签中的“文本”太长,我将如何添加另一行?
8 回答
用于\&
新行
^FT78,76^A0N,28,28^FH\^FDHello\&World^FS
我建议您结合 Thorsten 和 Dharmesh 的答案以获得最大效果:
^FB400,2,0,C^FO0,50
^FDHello\&World^FS
这样做会产生一个如下所示的标签:
这种方法的好处有两个:首先,文本块将适当地定位和对齐新行。其次,您可以完全控制换行符实际发生的位置。
我知道这个问题已经很老了,但我发现^FB
命令(字段块)实际上非常擅长包装文本:
我使用了这样的一行:
^A0R,54,54^FO505,3424^FB630,2,0,L,0^FDThis is a pretty long line of text^FS
它被很好地包裹成两行。您唯一需要注意的是,换行似乎只发生在空格处,而不是逗号或任何其他标点符号处。
^FX 不理解 \n,您需要将它传递给 \0A(\n 的十六进制等效项)ASCII wiki 页面
所以你的 ZPL 应该看起来像
^FT78,76^A0N,28,28^FH_^FDHello_0AWorld^FS
我将十六进制字符更改为 _ vs \ 以便其他人在您完成后查看此内容时不会感到困惑。
Jason 关于使用 ^FB 命令的想法是一个绝妙的想法。它有一些奇怪的属性(带有文本旋转),但通常是用于文本换行。
虽然这个问题有点老,但它确实提到了 ZPL 命令 ^FT 是指示文本元素出现位置的命令。78 和 76 分别对应标签的 X 轴和 Y 轴,测量单位是点。考虑到这一点,前面的答案原则上是正确的。您可以在更改 y 参数的情况下调用另一个 ^FT 命令,例如:
^FT78,78^A0N,28,28^FH\Hello^FS
^FT78,110^A0N,28,28^FH\World^FS
作为替代方案,ZPL手册详细介绍了 ^TB(文本框)命令,其中包括自动换行。
不回答原始问题,但对于使用 ZPL 进行 unicode 的任何人来说,这可能会有所帮助。
我正在使用^TB
阿拉伯语文本,发现\&
无法创建新行。
起作用的是将新行转换为十六进制(_0A
)并使用它。
例如:
^XA
^LL0406
^CI28
^CWZ,E:TT0003M_.FNT
^PA0,1,1,0
^FO609,50,2
^AZN,40,35
^TBN,559,300
^FH
^FD
_D8_B4_D8_B4_D8_B4_0A <-- new line
_D8_B4_D8_B4_D8_B4_0A <-- new line
_D8_B4_D8_B4_D8_B4
^FS
^PQ1
^XZ
...会输出这样的票:
ششش
ششش
ششش
对于 android,"\r\n" 用于添加换行符。
text.replaceAll("\n", "\r\n");
不幸的是,你不能真正做到这一点。您可能已经发现太长的文本会绕回同一行。您必须创建一个新行来容纳文本。我忘记了该字符串中的哪些数字是位置(可能是 28,28)尝试添加一行,将其更改为 34,28 并查看它是否移动到下面的新行...。只需使用这 4 个数字在那条线的前面。一个是字体大小(这可能会对您有所帮助),另外两个是从顶部到右侧的位置。一个简单的方法就是用文本编辑器编辑文件,然后从命令行复制命令到打印机 UNC 路径,看看你得到了什么。(即复制“C:\test.txt\127.0.0.1\zebra)。希望这会有所帮助。