【发布时间】:2014-08-25 23:25:47
【问题描述】:
我们正在使用 Zebra Designer Pro 创建模板。我们在模板上放置了各种标签,我们在运行时通过代码动态地将值传递给这些模板。
我们通过在代码中创建 ZPL 并附加我们想要在 ZPL 中打印的各种参数值来做到这一点。创建标签的方法如下:
private string GetPrinterInstruction(string templateName, IList<string> variables, int numberOfCopies)
{
StringBuilder printerInstruction = new StringBuilder();
//start the label format and sets the field origin
printerInstruction.AppendLine("^XA");
//Template
printerInstruction.AppendLine("^XF");
printerInstruction.AppendLine(templateName);
//Field Separator
printerInstruction.AppendLine("^FS");
// for each Variable
for (var i = 1; i <= variables.Count; i++)
{
//Assign field number FN1..FN2
printerInstruction.AppendLine("^FN");
printerInstruction.AppendLine(i.ToString());
//Indicate start of field data
printerInstruction.AppendLine("^FD");
//Field data
printerInstruction.AppendLine(variables[i - 1]);
//Field Separator
printerInstruction.AppendLine("^FS");
}
//Printing Quantities of Labels,
printerInstruction.AppendLine("^PQ" + numberOfCopies);
//indicates the end of the print field and the end of the label format.
printerInstruction.AppendLine("^XZ");
return printerInstruction.ToString();
}
void PrintLabel(CasthouseDataContext casthouseDataContext, Printer printer, LabelType.LabelTypeCodes labelTypeCode, IList<string> variables, int numberOfCopies)
{
try
{
string printerInstruction = GetPrinterInstruction(templateName, variables, numberOfCopies);
CodePrinter.SendStringToPrinter(printerName, labelTemplateName, printerInstruction);
}
catch (Exception ex)
{
ExceptionManager.HandleException(ex, ExceptionPolicies.Service);
}
}
请在下面找到正在生成的 ZPL 文件,用于将参数传递给打印机上的模板:
^XA
^XF
E:Label.ZPL
^FS
^FN
1
^FD
^FS
^FN
2
^FD
^FS
^FN
3
^FD
^FS
^FN
4
^FD
EEEEEEEEEEE
^FS
^FN
5
^FD
BBBBBBBBBB
^FS
^FN
6
^FD
11111111
^FS
^FN
7
^FD
16/08/2014
^FS
^FN
8
^FD
2411
^FS
^FN
9
^FD
11
^FS
^FN
10
^FD
2422
^FS
^FN
11
^FD
644444
^FS
^FN
12
^FD
6
^FS
^FN
13
^FD
1
^FS
^FN
14
^FD
^FS
^FN
15
^FD
^FS
^FN
16
^FD
6
^FS
^FN
17
^FD
^FS
^FN
18
^FD
ACCCCC
^FS
^FN
19
^FD
^FS
^FN
20
^FD
ABCCCC
^FS
^FN
21
^FD
^FS
^FN
22
^FD
66666666
^FS
^FN
23
^FD
666666
^FS
^FN
24
^FD
NNNNNNNNN
^FS
^FN
25
^FD
^FS
^FN
26
^FD
ABCCC
^FS
^FN
2222222
^FD
1111111111
^FS
^FN
28
^FD
111111
^FS
^FN
29
^FD
111111111
^FS
^FN
30
^FD
1111111111
^FS
^PQ1
^XZ
但是打印在标签上的数据是一致的,并且由于我们没有在正确的占位符中获取数据而被放错了位置。请帮助我们如何解决此问题。
【问题讨论】:
-
提供示例 ZPL 输出和示例标签图像以查看究竟发生了什么。
-
能否请您发布正在构建的 ZPL。此外,当您在 Zebra Designer pro 中生成模板时,您使用哪种标签作为占位符来获取值。
-
我们正在使用输入字段来创建占位符并传递放置在这些输入字段中的参数