如何在不同dpi的打印机中使用相同的ZPL代码
本文关键字:ZPL 代码 打印机 dpi | 更新日期: 2023-09-27 18:18:42
已使用ZebraDesigner2软件创建用于打印ZPL的标签,使用GC420t打印机我没有问题。
现在我必须使用S4M打印机(200 dpi)和ZT230 (300 dpi)生成ZPL代码来打印标签,问题是相同的dpi差异使得S4M裙子留下的印象非常大切割重要信息。例如
^XA
^PW1240
^LL1724
^FT321,845^A0N,42,40^FH'^FDTeste 1234567890^FS
^PQ1,0,1,Y^XZ
我试着使用下面的命令,但是我没有找到好的例子。
^MU – Set Units of Measurement
^JM – Set Dots per Millimeter
我需要在两台打印机上打印相同的zpl代码,可以在200或300 dpi。
Zebra打印机的默认测量单位是点。设置计量单位为mm,代码中所有参数必须以mm为单位。
例如在203 dpi(8点/mm)打印机上使用下面的代码
^ XA
32岁的^ A0N 32
^ FT16 64
^ fdt ^ FS
^ XZ
您可以使用下面的代码(此代码将在203 dpi(8点/毫米)和300 dpi(12点/毫米)打印机上正常工作)
^ XA
^妈妈
^ A0N 4 4
^ FT2 8
^ fdt ^ FS
^泥浆
^ XZ
在为Zebra打印机准备标签时,我不得不做类似的过程。我必须动态地检测所支持的不同打印机的分辨率。下面的代码使用。net PrintServer类来安装打印机并从中获取设置。
...
using System.Printing;
...
var ps = new PrintServer();
var queues = ps.GetPrintQueues(
new[] { EnumeratedPrintQueueTypes.Local, EnumeratedPrintQueueTypes.Connections });
var bool Is200dpi = false;
var bool Is300dpi = false;
var int ActualDPI = 203; // just some default
foreach (var queue in queues)
{
if (queue.Name.Trim().Equals( "ThePrinterOnYourMachine" ))
{
var pt = queue.DefaultPrintTicket;
if (pt.PageResolution.X >= 200 && pt.PageResolution.X <= 203)
Is200dpi = true;
else if (pt.PageResolution.X >= 300 && pt.PageResolution.X <= 303)
Is300dpi = true;
ActualDPI = pt.PageResolution.X;
// done, don't need to look at any other printers
break;
}
}
因此,如果您有一些配置设置来检测每台机器上的"标签"打印机,您可以将其作为计算的基础。标记200 dpi和300 dpi的打印机,这样您就可以为您的尺寸或大小输出选项使用乘数来构建标签。