gpt4 book ai didi

c# - ZPL 将参数传递给带有错误数据的标签打印件

转载 作者:行者123 更新时间:2023-12-01 18:52:34 26 4
gpt4 key购买 nike

我们正在使用 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

但是打印在标签上的数据是一致的,并且由于我们没有在正确的占位符中获取数据而被放错位置。请帮助我们了解如何解决该问题。

最佳答案

不要使用输入字段。替换代码中的输入字段,如下所示:

  1. 打开需要添加新字段(要显示的参数)的标签。
  2. 在工具箱上,选择“文本”>“固定文本”。
  3. 输入参数名称。请注意,该字符串应该能够被搜索并替换为数据库中的参数值。单击“完成”

enter image description here

使用“打印”对话框中的“打印到文件”选项生成文件的 ZPL。将生成的 ZPL 文件将包含文本向导对话框中提到的参数名称。

在代码中使用此 ZPL 文件。现在,不再使用 ZPL 文件传递​​参数值,而是使用已生成的 ZPL 文件并替换参数名称的值,如下所示:

//pass the zpl generated from Zebra Designer Pro into this menthod
public string replaceParameterValues(string zplForLabel)
{
StringBuilder zpl = new StringBuilder();
zpl.Apppend(zplForLabel);
//do this for all the paramters
zpl = zpl.Replace("<ParemeterName>", valueForTheParamter);

//pass this zpl to the printer for printing as it will contain
//all the values for the parameters
return zpl.ToString();
}

这将消除您对创建用于传递参数的 ZPL 的依赖。

关于c# - ZPL 将参数传递给带有错误数据的标签打印件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25485250/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com