我有一个问题。我是ZPL语言的新手,我使用zebra设计器创建了一个200dpi的标签。如果我想制作300dpi的相同标签。我的zpl代码到底改变了什么?我在考虑维度,比如
^LL799
799将改变为另一个尺寸,但是还有其他的吗?
编辑:
我的目标是创建一个c#应用程序来在我的斑马打印机上打印标签。
用户将选择是200dpi还是300dpi,然后将正确的代码发送到GenericText/Only在我的打印机上打印(打印到GenericText/Only是必需的,我不能改变这一点)。所以,如果你知道在c#中如何做到这一点,我也会接受的。
Thanks in advance
要切换分辨率,需要更改ZPL模板以便正确打印标签。基本上,对大多数领域来说,这只是按3/2缩放的问题。例如:
200dpi 300dpi
-------- --------
^FO40,40 -> ^FO60,60
^BY4 -> ^BY6
以此类推。我编写了一个转换,它的作用正好相反,只是将乘数从2/3更改为3/2,您应该可以使用:
public static void Main()
{
var evaluator = new MatchEvaluator(Converter);
const string pattern = @"(?<=^[A-Z0-9]{2,3},?)([0-9]+,[0-9]+)";
const string input = @" ... ZPL CODE HERE";
Console.WriteLine(Regex.Replace(input, pattern, evaluator));
Console.WriteLine();
Console.WriteLine("Press any key to quit...");
Console.ReadKey();
}
public static string Converter(Match match)
{
var (w, h) = (double.Parse(match.Value.Split(',')[0]), double.Parse(match.Value.Split(',')[1]));
var (wNew, hNew) = ((int)Math.Floor(w * 2 / 3), (int)Math.Floor(h * 2 / 3));
return wNew + "," + hNew;
}
这将不会转换某些字段,例如条形码。您需要手动更改这些。您应该使用http://labelary.com/viewer.html来检查结果并进行调整。打开2个查看器,分别粘贴203和300 dpi,然后选择分辨率和标签大小进行比较。